我在MVVM中有一个DataGrid,其ItemsSource绑定到自定义模型。
此模型中的属性的命名方式与数据库中的等效项相同。 例如:
public string StapelStatus_Txt
{
get
{
return this.stapelstatusTxt;
}
set
{
this.stapelstatusTxt = value;
this.OnPropertyChanged("StapelStatus_Txt");
}
}
是否有可能(没有重命名属性)为数据网格声明另一个显示名称?我认为数据anotation“DisplayName”会有所帮助......但它没有。
有人有个主意吗?:)
亲切的问候
答案 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);
}