在我的MainWindow.xaml中,我已将UserControl添加到Window。还有一个按钮可以从True / False切换布尔值调用IsVisible。
在我的MainUserControl.xaml中,我有我的datagrid(不是MS网格),其tempate指向App.xaml中设置的控件模板。这是我的IsVisible属性存在的地方。
在我的App.xaml中,我有一个ControlTemplate,它有我的datagrid。如果我想将Column的Visible属性绑定到MainUserControl类中的IsVisible属性。
我无法绑定该属性。我尝试过使用TemplateBinding,但由于TemplatedParent不是UserControl,因此无法使用。我尝试过使用RelativeSource并设置Ancestor,但这也不起作用。有没有人有任何建议可以帮助我?
编辑: 这是我的ControlTemplate中的代码
<Column FieldName="Column1"
Title="Column1"
Visible="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UserControl1}, AncestorLevel=2}, Path=IsVisible}" />
答案 0 :(得分:1)
问题在于您正在设置AncestorLevel=2
,请尝试删除它,它应该适合您。
AncestorLevel=2
只允许这个工作,如果你必须UserControl1
s,一个在另一个内部,因为它表示绑定到遍历时遇到的第二个local:UserControl1
实例。