WPF MVVM DataGridColumnHeader DisplayName

时间:2012-12-17 13:46:57

标签: wpf data-binding mvvm datagrid datagridcolumn

我在MVVM中有一个DataGrid,其ItemsSource绑定到自定义模型。

此模型中的属性的命名方式与数据库中的等效项相同。 例如:

public string StapelStatus_Txt
    {
        get
        {
            return this.stapelstatusTxt;
        }
        set
        {
            this.stapelstatusTxt = value;
            this.OnPropertyChanged("StapelStatus_Txt");
        }
    }

是否有可能(没有重命名属性)为数据网格声明另一个显示名称?我认为数据anotation“DisplayName”会有所帮助......但它没有。

有人有个主意吗?:)

亲切的问候

2 个答案:

答案 0 :(得分:8)

例如,您可以在属性上使用DisplayNameAttribute并设置列标题,如下所示:

<DataGrid AutoGeneratingColumn="OnAutoGeneratingColumn"/>

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

答案 1 :(得分:0)

一种方法可以是

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn">

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