将DependencyProperty绑定到另一个类中的Property

时间:2012-02-28 18:37:29

标签: c# wpf dependency-properties

在我的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}"  />

1 个答案:

答案 0 :(得分:1)

问题在于您正在设置AncestorLevel=2,请尝试删除它,它应该适合您。

AncestorLevel=2只允许这个工作,如果你必须UserControl1 s,一个在另一个内部,因为它表示绑定到遍历时遇到的第二个local:UserControl1实例。