XAML WPF绑定到UserControl的DependencyProperty未按预期工作[重复]

qlvxas9a  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(102)

此问题在此处已有答案

How to implement two-way binding on a property?(2个答案)
7年前关闭。
我有一些奇怪的问题与mindecyProperty绑定。为了保持问题简单,我已经创建了一些dummy-control,有相同的不必要的行为
我有一个UserControl,它有一个在代码后面定义的DependencyProperty:

public static readonly DependencyProperty TestValueProperty = DependencyProperty.Register("TestValue", typeof(string), typeof(Test), new PropertyMetadata(default(string)));

public string TestValue
{    
     get { return (string)GetValue(TestValueProperty); }
     set { SetValue(TestValueProperty, value); }
}

字符串
此属性用于XAML:

<Label Content="{Binding TestValue}" />


此控件应在另一个控件中使用,如下所示:

<views:Test TestValue="{Binding Settings.Setting123}" />


Settings在viewmodel中被定义为属性。
但是Settings.Setting123的内容在我的用户控件的标签中不可见。
当写一些固定值而不是绑定时,它工作得很好:

<views:Test TestValue="Test" />


当然,我不想要一个固定的值,而是绑定对象的内容。有什么提示吗?
先谢谢你了!

6ojccjat

6ojccjat1#

您没有共享足够的代码让任何人重新创建问题,但阅读字里行间,我猜Label在您的UserControl XAML中。如果TestValueUserControl的属性,这可能会工作:

<Label Content="{Binding TestValue, RelativeSource={RelativeSource AncestorType=UserControl}}" />

字符串
你做对了一件事:你的UserControl构造函数必须总是设置DataContext = this;。没有例外。

相关问题