问题描述
下面是我想本质。
A 用户控件
与的TextBlock
的文本
属性绑定到的用户控件
的道具
属性。 (这仅仅是一个重新$我的实际问题的对$ psentation)
Here's what I essentially want.A UserControl
with a TextBlock
whose Text
property is binded to the Prop
property of the UserControl
. (This is just a representation of my actual problem)
下面是部分我的用户控件
( ClientDetailsControl.xaml
)
<TextBlock Text="{Binding Prop}" />
接下来是 ClientDetailsControl.xaml.cs
public partial class ClientDetailsControl : UserControl
{
public static DependencyProperty PropProperty = DependencyProperty.Register("Prop", typeof(String), typeof(ClientDetailsControl));
public String Prop { get; set; }
public ClientDetailsControl()
{
InitializeComponent();
DataContext = this;
}
}
现在,在我的主要WPF窗口( NewOrder.xaml
)我使用这个用户控件
为
Now, In my main WPF window(NewOrder.xaml
) I am using this UserControl
as
<userControl:ClientDetailsControl Prop="{Binding MyProp}" />
的 MyProp
属性被声明为如下 NewOrder.xaml.cs
public String MyProp { get { return "HELLO"; } }
当我运行这个code我得到以下错误:
When I run this code I get the following error:
BindingEx pression路径错误:'MyProp'属性不是'对象'发现
''ClientDetailsControl'(名称='')。 BindingEx pression:路径= MyProp;
的DataItem ='ClientDetailsControl'(名称='');目标元素是
ClientDetailsControl'(名称='');目标属性是'道具'(式
'字符串')
在我简单的写
<userControl:ClientDetailsControl Prop="ABCD" />
它的工作原理。然而,当我尝试的道具
属性绑定的用户控件
到 MyProp
它不工作。
It works. However, when I try to bind the Prop
property of the UserControl
to MyProp
it doesnt work.
我如何使这项工作?
推荐答案
使用的属性是这样的:
Use the RelativeSource
property like this:
<userControl:ClientDetailsControl
Prop="{Binding MyProp,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window}}"/>
这篇关于与WPF用户控件绑定问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!