我有一个带有HeaderTemplate的gridview,我在标题上放了一个按钮,并且附加了一个命令,我的ViewModel永远不会被调用。 如何追溯我的ViewModel,好像它“丢失”了。
任何想法?
答案 0 :(得分:3)
使用:
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}
会将我带回DataContext
。
答案 1 :(得分:0)
Column HeaderTemplate是DataGrid的一个生成控件,没有对DataGrid的DataContext的直接VisualTree访问,所以你必须添加RelativeSource AncestorType并通过DataContext显式引用该属性
"{Binding DataContext.AllSelected, RelativeSource={RelativeSource AncestorType=Window}}" />
或者您也可以将此内容写入模板中的top元素
DataContext="{Binding DataContext, RelativeSource={RelativeSource AncestorType=DataGrid}}"