2

ユーザー定義型のobservableCollectionでグリッドをバインドしています。私のクラスには、FirstName、LastName、DateOfBirth などのプロパティがあります。

グリッドをバインドしているとき。同じヘッダー、つまりFirstNameが表示されていますが、First Nameのようにしたいです。

クラスのプロパティの属性に関係があると確信していますが、どの属性を使用すればよいかわかりません。

表示属性を試しましたが、うまくいきませんでした。

どんな情報でも役に立ちます...

4

1 に答える 1

2

xaml でこれを行う方法があるかどうかはわかりませんが、EventHandler を追加して、ColumnHeader テキストを変更するロジックを追加できます。

xaml:

   <DataGrid ItemsSource="{Binding ...}" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" />

コード:

  private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
  {
     e.Column.Header = string.Concat(e.Column.Header.ToString().Select(x => char.IsUpper(x) ? " " + x : x.ToString())).TrimStart(' '); 
  }

これにより、Pascal のケースが変換され、大文字の間にスペースが入るようになります。例: "FirstName" = "First Name"

前

後

于 2012-12-28T07:28:39.347 に答える