1

最初の列の名前が動的に変更される DataGrid レイアウトを構築しようとしています。DataGridTextColumn の Header プロパティに変更するにはどうすればよいですか? Header プロパティが StaticResource に接続されている例をいくつか見てきましたが、StaticResource は固定値であり、複数の値が必要になるとうまくいきません。例:

  • ユーザーが RadioButton を選択し、時間でフィルタリングすると、ヘッダーは X になります。
  • 日でフィルタリングする場合、ヘッダーは Y になります
  • 月ごとにフィルターする場合、ヘッダーは Z になります
  • ...

    覚えておいてください、これは私が変更する必要があるよりもいくつかの例の1つです. ありがとう。

    4

    1 に答える 1

    1

    これは、Databinding を使用して簡単に行うことができます。

    コードビハインドの方法

    ウィンドウの分離コードにプロパティを作成して、文字列値を保持します。私は TextProp と呼びます。この例では、ウィンドウの要素名が「ウィンドウ」であると仮定します。DataGridTextColumn タグで、Header 属性をそのプロパティにデータバインドします。

    <DataGridTextColumn Header="{Binding TextProp, ElementName=Window}"/>
    

    MVVM の方法

    データグリッドがバインドされているビューモデルにプロパティを配置することを除いて、上記と同じことを行います。XAML を次のように変更します。

    <DataGridTextColumn Header="{Binding TextProp}"/>
    

    次に、選択した方法でそのプロパティ値を変更するだけです。プロパティが変更されたときにこれを取得して値を更新するには、 INotifyPropertyChangedを実装する必要があります(その投稿の下部を確認してください)。

    于 2011-09-21T15:49:53.623 に答える