c# - 将枚举类型传递给具有整数值的转换器
问题描述
所以我试图制作一个IValueConverter
可以在DataGrid
绑定中使用的泛型,我将发送一个整数值和一个枚举类型以将该整数转换为该枚举类型并从资源文件返回一个字符串值。但是我不能将枚举类型传递给转换器,因为我无法在我的 xaml 代码中引用我的枚举。这是我尝试过的参考:
我想引用在命名空间中命名UserStatus
的类中的 () 。ERPConstants
ERPProject._AppControl._BAL._Core._Constants
我在我的代码中试过这个:
<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
在命名空间中不存在。我也尝试包含ERPConstants
在xmlns:Constants
上述内容中,但没有奏效。有人可以帮忙吗?
解决方案
因此,经过一番尝试后,我自己在这里得到了答案,它适用于可能遇到相同问题的任何人
<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>