How to bind property name to which column is binded to pass as command parameter

試著忘記壹切 提交于 2019-12-04 21:03:09
Rohit Vats

Like I mentioned in previous question here that how to get value for DataGridTextColumn where i suggested to use Column.Binding.Path.Path to get bound property name.

But that won't work in this case since DataGridComboBoxColumn does not have any binding property. If syntax is like the one you mentioned in question above, you can get like this:

For SelectedValue i.e. Company:

<Button Command="{Binding DataContext.OpenFilterCommand, 
                  RelativeSource={RelativeSource AncestorType=UserControl}}"
        CommandParameter="{Binding 
                   Column.EditingElementStyle.Setters[1].Value.Path.Path, 
                  RelativeSource={RelativeSource Mode=TemplatedParent}}"/>

EXPLANATION

TemplatedParent (DataGridColumnHeader) --> Column (DataGridComboBoxColumn) --> EditingElementStyle(EditingElementStyle) --> Setters(1) (get first setter from style) --> Value (Setter Value) --> Path (PropertyPath) --> Path (Actual PropertyName)

If you want to get ItemsSource property name, replace Setters[1] with Setters[0].

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!