WPF MVVM数据网格列标题DisplayName

3
我在MVVM中使用了一个DataGrid,它的ItemsSource绑定到一个自定义模型上。
该模型中的属性名称与数据库中的等效属性名称相同。 例如:
public string StapelStatus_Txt
    {
        get
        {
            return this.stapelstatusTxt;
        }
        set
        {
            this.stapelstatusTxt = value;
            this.OnPropertyChanged("StapelStatus_Txt");
        }
    }

有没有办法在不重命名属性的情况下为数据网格声明另一个显示名称?我认为数据注释“DisplayName”会有所帮助...但实际上并没有。
有人有想法吗? :)
此致敬礼

在获取部分返回替代名称。 - JSJ
获取部分不返回列标题名称,而是单元格的值。 - Robert Nagel
你有多少个DataGrid?如果不是很多,那么不要自动生成列,在XAML中声明它们。然后你可以随心所欲地自定义它们。 - icebat
2个回答

10

例如,您可以在属性上使用DisplayNameAttribute并像这样设置列标题:

<DataGrid AutoGeneratingColumn="OnAutoGeneratingColumn"/>

private void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Column.Header = ((PropertyDescriptor)e.PropertyDescriptor).DisplayName;
}

0

其中一种方法可以是

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn">

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Column.Header = MyPropertyNameConverter.Convert(e.PropertyName);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接