将枚举类型传递给具有整数值的转换器[重复]

Posted

技术标签:

【中文标题】将枚举类型传递给具有整数值的转换器[重复]【英文标题】:Passing enum type to Converter with integer value [duplicate] 【发布时间】:2019-08-17 15:19:16 【问题描述】:

所以我试图创建一个通用IValueConverter,我可以在DataGrid 绑定中使用它,我将发送一个整数值和一个枚举类型以将该整数转换为该枚举类型并从资源文件。但是我不能将枚举类型传递给转换器,因为我无法在我的 xaml 代码中引用我的枚举。这是我尝试过的参考:

我想引用命名空间 ERPProject._AppControl._BAL._Core._Constants 中名为 ERPConstants 的类中的 (UserStatus)。

我在我的代码中试过这个:

<UserControl x:Class="ERPProject._AppUI._Users.UsersControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:Constants="clr-namespace:ERPProject._AppControl._BAL._Core._Constants">

<Grid>
<DataGrid Name="dgUsers" Grid.Row="1">
                <DataGrid.Columns>
<DataGridTemplateColumn Header="Status" Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Label HorizontalAlignment="Left" Content="Binding Status, Converter=StaticResource EnumConverter, ConverterParameter=x:Type Constants:UserStatus"></Label>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>

但它说UserStatus 在命名空间中不存在。我还尝试在上面的xmlns:Constants 中包含ERPConstants,但没有成功。有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

所以经过一些尝试后,我自己在这里得到了答案,适用于任何可能遇到相同问题的人 我将我的枚举引用为这个常量:ERPConstants+UserStatus

<DataGridTemplateColumn Header="Status" Width="*">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Label HorizontalAlignment="Left" Content="Binding Status, Converter=StaticResource EnumConverter, ConverterParameter=x:Type Constants:ERPConstants+UserStatus"></Label>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

【讨论】:

以上是关于将枚举类型传递给具有整数值的转换器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

c#下可否将一个枚举类型的数组转换为一个整型数组

C#-枚举

C#-枚举

C#-枚举

C#-枚举

enum枚举类型怎么可以转换成整型呢 ,可以转换成其它类型吗,难道枚举类型的基类是数值类型吗?