У меня есть странная проблема с привязкой DependecyProperty. Чтобы вопрос простой i've создал фиктивный-контроль, который имеет такое же нежелательное поведение у меня есть UserControl, который имеет DependencyProperty, определенный в коде позадиWPF привязка к функции 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
не отображается на ярлыке пользователя usercontrol.
При написании некоторые исправления значения вместо привязки его прекрасно работает:
<views:Test TestValue="Test" />
Но, конечно, я не хочу, фиксированное значение, но содержание связанного объекта. Любой намек на то, что здесь происходит не так?
Заранее благодарен!
Просьба предоставить достаточно кода для воспроизведения проблемы. –
Хотя вы не указали это в своем вопросе, вы, безусловно, установите DataContext UserControl для себя (например,по 'DataContext = this' в его конструкторе). Удалите это и напишите привязки в XAML UserControl с RelativeSource, как показано в ответе Эд. – Clemens
Да, DataContext в UserControl выглядит так: DataContext = "{Binding RelativeSource = {RelativeSource Mode = Self}}" – emvoll