У меня есть ViewModel и Class. Они выглядят так:
//viewmodel
public class MyViewModel : ViewModelBase {
private MyClass myClass;
public MyClass MyClass{
get{
return myClass;
}
set{
this.myClass = value;
base.OnPropertyChanged();
}
}
private string testString;
public string TestString{
get{
return testString;
}
set{
this.testString = value;
base.OnPropertyChanged();
}
}
public MyViewModel(){
this.MyClass = new MyClass();
this.TestString = "blah, blah, blah"
}}
//class
public class MyClass : ViewModelBase{
private string myString;
public string MyString{
get {
return myString
}
set{
this.myString = value;
base.OnPropertyChanged();
}
}
public MyClass (){
this.MyString = "25"; }}
Базовый класс ViewModelBase реализует INotifyChange и содержит логику обработчика OnPropertyChanged. У меня есть UserControl, в котором я хочу привязать значения из MyClass следующим образом:
<TextBlock Text="{x:Bind Path=MyViewModel.MyClass.MyString, Mode=TwoWay}"></TextBlock>
Однако это не работает. Значение привязано при инициализации правильно, но любое изменение в MyViewModel.MyClass.MyString не отражается в texblock, текст остается прежним. OnPropertyChange возникает, точка останова в ViewModelBase попадает с измененным значением MyString, но каким-то образом не распространяется на texblock. Привязка к простому значению из MyClass работает как шарм, этот текстовый блок обновляется при изменении свойства:
<TextBlock Text="{x:Bind Path=MyViewModel.TestString, Mode=TwoWay}"></TextBlock>
Что мне не хватает? Почему не обновляется текстовый блок с привязкой к «MyViewModel.MyClass.MyString»?