【问题标题】:How to get the WPF column binding field from DataGridColumnHeader style如何从 DataGridColumnHeader 样式中获取 WPF 列绑定字段
【发布时间】:2017-05-11 08:33:59
【问题描述】:

我正在为 WPF 数据网格进行自定义排序(因为我使用分页,所以我不能使用默认排序),我如何获取该列绑定到的字段的名称?以下是我在DataGrid.Resources中的当前代码

    <Style TargetType="DataGridColumnHeader">
        <Setter Property="Command" Value="{Binding Path=DataContext.SortCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
        <Setter Property="CommandParameter" Value="{Binding Path=DisplayIndex, RelativeSource={RelativeSource Mode=Self}}"/>
    </Style>

我尝试获取 Column 但它返回 null?

【问题讨论】:

    标签: wpf binding wpfdatagrid datagridtextcolumn datagridcolumnheader


    【解决方案1】:

    我想通了,我给风格一个关键

    <DataGrid.Resources>
        <Style x:Key="SortableColumnHeader" TargetType="DataGridColumnHeader">
            <Setter Property="Command" Value="{Binding Path=DataContext.SortCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
            <Setter Property="CommandParameter" Value="{Binding Path=Column.Binding.Path.Path, RelativeSource={RelativeSource Mode=Self}}"/>
        </Style>
    </DataGrid.Resources>
    

    并将其应用到列的 HeaderStyle 中,它就起作用了

    <DataGridTextColumn Binding="{Binding Name}" Header="Column Name" MinWidth="150" HeaderStyle="{StaticResource SortableColumnHeader}"/>
    

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多