如何获取datagrid列绑定的字段?

时间:2014-01-25 07:27:06

标签: wpf xaml mvvm wpfdatagrid

在我的xaml中,我修改了每个列标题以包含一个按钮。对于命令参数,我想使用列的数据字段名称,而不是标题内容。例如。而不是标题内容的“职位”,我想要“JOB_TITLE”。

对于标题内容,我会使用:

<Button Command="{Binding DataContext.OpenFilterCommand, RelativeSource={RelativeSource AncestorType=UserControl}}" CommandParameter="{TemplateBinding Content}">

如何获取实际字段名称?

1 个答案:

答案 0 :(得分:5)

如果我认为正确,您希望 绑定属性名称绑定到哪个列作为命令参数传递给OpenFilterCommand

假设您的DataGrid列是这样的:

        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding NAME}"/>
            <DataGridTextColumn Binding="{Binding JOB_TITLE}" />
        </DataGrid.Columns>

并希望将属性名称JOB_TITLE作为命令参数传递。这可以这样实现:

<Button Command="{Binding DataContext.OpenFilterCommand,
                     RelativeSource={RelativeSource AncestorType=UserControl}}"
        CommandParameter="{Binding Column.Binding.Path.Path,
                     RelativeSource={RelativeSource Mode=TemplatedParent}}"/>

<强>说明

  

TemplatedParent( DataGridColumnHeader ) - &gt;列( DataGridTextColumn )    - &GT;绑定( BindingBase ) - &gt;路径( PropertyPath ) - &gt;路径(实际PropertyName