gpt4 book ai didi

c# - 在数据网格中绑定(bind)枚举属性的最佳方法

转载 作者:行者123 更新时间:2023-11-30 23:29:13 25 4
gpt4 key购买 nike

将枚举属性绑定(bind)到数据网格的最佳方法是什么。目前我正在使用公共(public)属性并从那里返回枚举名称还有其他方法吗?

枚举

public enum enStatus
{
Draft = 1,
Published = 2,
Started = 3,
Completed = 4
}

型号

class ModelA
{
private int statudId;
public string Status { get { return Enum.GetName(typeof(enStatus),statudId); }
}

数据网格

<DataGrid Name="dataGrdAssignments" Style="{StaticResource dataGridManageScreens}" SelectedCellsChanged="dataGrdAssignments_SelectedCellsChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="Status" Width="150" Binding="{Binding Status}" ElementStyle="{StaticResource gridElementStyle}" EditingElementStyle="{StaticResource gridEditElementStyle}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>

最佳答案

您的方法可行,但我更愿意使用绑定(bind)转换器来清理您的 ViewModel。

public class EnumConverter : IValueConverter
{

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((Enum)value).ToString();
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}

在您的 XAML 中,如下所示:

Binding="{Binding Status, Converter="{StaticResource ResourceKey=enumConverter}}" 

不要忘记在您的 xaml 文件的资源部分声明您的“enumConverter”(或者您将决定命名它)。

关于c# - 在数据网格中绑定(bind)枚举属性的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com