3

ItemsSource がカスタム モデルにバインドされている MVVM で DataGrid を取得しました。

このモデルのプロパティは、データベースでの同等の名前が付けられています。たとえば、次のようになります。

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

データグリッドの別の表示名を宣言することは何とか (プロパティの名前を変更せずに) 可能ですか? データ注釈「DisplayName」が役立つと思いました...しかし、そうではありません。

誰かがアイデアを得た?:)

敬具

4

2 に答える 2

10

たとえば、プロパティでDisplayNameAttributeを使用して、次のように列ヘッダーを設定できます。

<DataGrid AutoGeneratingColumn="OnAutoGeneratingColumn"/>

private void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Column.Header = ((PropertyDescriptor)e.PropertyDescriptor).DisplayName;
}
于 2012-12-17T17:12:44.520 に答える
0

それを行う1つの方法は

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn">

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Column.Header = MyPropertyNameConverter.Convert(e.PropertyName);
}
于 2012-12-17T16:29:09.060 に答える