2012-12-17 41 views
3

我得到了MVVM中的DataGrid,它的ItemsSource绑定到自定义模型。WPF MVVM DataGridColumnHeader显示名称

该模型中的属性与其在数据库中的等效名称相同。 例如这样的:

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

是它在某种程度上可以(不重新命名propertie)声明另一个显示名称为DataGrid?我认为数据标注“DisplayName”可以帮助...但它不会。

有人有一个想法?:)

亲切的问候做到这一点可能是

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"> 

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

返回替代名称在获取部分 – JSJ

+0

获取部分不返回columnheadername,但单元格的值为 –

+0

您有多少个DataGrid?如果不多,则不要自动生成列,在XAML中声明它们。然后你可以自定义他们所有你想要的。 – icebat

回答

0

的一种方式,并设置列标题一样此:

<DataGrid AutoGeneratingColumn="OnAutoGeneratingColumn"/> 

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