Для вложенной ViewModel задано значение MainConindow DataContext:
var mainWindow = new MainWindow();
mainWindow.Show();
mainWindow.DataContext = new
{
MyProperty = new
{
MySubProperty = "Hello"
}
}
Легко привязать к MySubProperty в XAML:
<Button Content="{Binding MyProperty.MySubProperty}"/>
Как я могу сделать это связывание в коде позади?
// MyButton.xaml.cs
public partial class MyButton : Button
{
public MyButton()
{
InitializeComponent();
// todo: add binding here
}
// I want this method called if this datacontext is set.
// and called if MySubProperty changes and INotifyPropertyChange is implemented in the Datacontext.
public void MySubPropertyChanged(string newValue)
{
// ...
}
}
У меня нет доступа к MainWindow в MyButton.xaml.cs, поэтому я не могу использовать его в качестве источника.
Кнопка - только пример, но это было бы начало.
В моем исходном сценарии у меня нет полезного свойства зависимости для этого. Если dp необходим для такой привязки, очень полезен пример, включающий создание dp.