在数据网格中绑定枚举属性的最佳方法
本文关键字:属性 最佳 方法 枚举 绑定 数据 数据网 网格 | 更新日期: 2023-09-27 18:36:09
将
枚举属性绑定到DataGrid的最佳方法是什么.目前我正在使用公共属性并从那里返回枚举名称还有其他方法吗?
列举
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>
您的方法有效,但我更喜欢使用绑定转换器来清理您的 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"(或者您决定如何命名它)。