首页 > 解决方案 > 将枚举类型传递给具有整数值的转换器

问题描述

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

我想引用在命名空间中命名UserStatus的类中的 () 。ERPConstantsERPProject._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在命名空间中不存在。我也尝试包含ERPConstantsxmlns:Constants上述内容中,但没有奏效。有人可以帮忙吗?

标签: c#wpfxaml

解决方案


因此,经过一番尝试后,我自己在这里得到了答案,它适用于可能遇到相同问题的任何人

<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>

推荐阅读