1

我正在尝试构建一个 DataGrid 布局,其中第一列的名称将被动态更改。我该如何在 DataGridTextColumn 的 Header 属性中进行更改?我见过一些例子,而不是将 Header 属性连接到 StaticResource,但 StaticResource 是一个固定值,这对我不起作用,一旦我需要几个值。例子:

  • 如果用户选择 RadioButton,按小时过滤,标题将为 X
  • 如果按天过滤,标题将为 Y
  • 如果按月过滤,标题将为 Z
  • ...

    请记住,这是我需要更改的几个示例之一。谢谢。

    4

    1 回答 1

    1

    这可以通过数据绑定轻松完成。

    代码隐藏方式

    在窗口的代码隐藏中创建一个属性来保存字符串值;我将调用我的 TextProp。对于本示例,我将假设您的窗口的元素名称是“Window”。在 DataGridTextColumn 标记中,将 Header 特性数据绑定到该属性。

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

    MVVM 方式

    执行与上述相同的操作,除了将属性放在数据网格绑定到的视图模型上。将 XAML 更改为:

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

    然后您所要做的就是以您选择的任何方式更改该属性值。要在属性更改时更新值,您需要实现INotifyPropertyChanged(检查该帖子的底部)。

    于 2011-09-21T15:49:53.623 回答