C# 将DependencyProperty绑定到另一个类中的属性
在my MainWindow.xaml中,我已将UserControl添加到该窗口。还有一个按钮,用于将布尔值调用从True/False切换为Visible 在MainUserControl.xaml中,我有一个datagrid(不是MS grid),它的tempate指向App.xaml中设置的控件模板。这就是我的IsVisible属性所在的位置 在我的App.xaml中,我有一个ControlTemplate,其中包含我的datagrid。如果要将列的Visible属性绑定到MainUserControl类中的IsVisible属性 我在约束财产方面遇到了麻烦。我尝试过使用TemplateBinding,但这不起作用,因为TemplatedParent不是UserControl。我尝试过使用RelativeSource和设置祖先,但也没有成功。有人有什么建议帮我吗 编辑: 这是我的ControlTemplate中的代码C# 将DependencyProperty绑定到另一个类中的属性,c#,wpf,dependency-properties,C#,Wpf,Dependency Properties,在my MainWindow.xaml中,我已将UserControl添加到该窗口。还有一个按钮,用于将布尔值调用从True/False切换为Visible 在MainUserControl.xaml中,我有一个datagrid(不是MS grid),它的tempate指向App.xaml中设置的控件模板。这就是我的IsVisible属性所在的位置 在我的App.xaml中,我有一个ControlTemplate,其中包含我的datagrid。如果要将列的Visible属性绑定到MainUser
<Column FieldName="Column1"
Title="Column1"
Visible="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UserControl1}, AncestorLevel=2}, Path=IsVisible}" />
问题在于您正在设置
antestorlevel=2
,请尝试删除它,它应该对您有用
antestorlevel=2
只有在您必须UserControl1
s的情况下才允许此操作,一个在另一个内部,正如它所说,绑定到向上遍历时遇到的local:UserControl1
的第二个实例。问题是您正在设置antestorlevel=2
,尝试删除它,它应该为你工作
AncestorLevel=2
只有在您必须UserControl1
s的情况下才允许此操作,一个在另一个内部,正如它所说,绑定到向上遍历时遇到的local:UserControl1
的第二个实例。为什么不发布相关的XAML部分?这将有助于理解您的问题。为什么不发布相关的XAML部分?这将有助于理解您的问题。我删除了AncestorLevel=2,但仍然得到相同的绑定错误:System.Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,AncestorType='Project1.UserControl1',AncestorLevel='1'的绑定源。BindingExpression:Path=IsVisible;DataItem=null;目标元素为“列”(HashCode=8963119);目标属性为“可见”(类型为“布尔”)多亏了您,我重新调整了它。。无视我之前的评论!ThanksI删除了AncestorLevel=2,但仍然得到相同的绑定错误:System.Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,AncestorType='Project1.UserControl1',AncestorLevel='1'的绑定源。BindingExpression:Path=IsVisible;DataItem=null;目标元素为“列”(HashCode=8963119);目标属性为“可见”(类型为“布尔”)多亏了您,我重新调整了它。。无视我之前的评论!谢谢