Я пытаюсь выяснить, как вызвать PropertyChangedEvent, когда меняется средний слой моего привязки. Начну с примера здесь:MVVM Привязка к свойствам наблюдаемого свойства
public class MainViewModel :NotificationObject // Main DataContext
{
public SubViewModel SubVM{get; {_subVM = value; RaisePropertyChanged("SubVM");}} // observable property
public void DoChangeSubVM()
{
SubVM = new SubViewModel(); // doing this will not update the egControl
}
}
public class SubViewModel : NotificationObject
{
public Sub2ViewModel Sub2VM {get; set{_sub2VM = value; RaisePropertyChanged("Sub2VM");}} // observable property
}
public class Sub2ViewModel : NotificationObject
{
public int SomeProp {get; set {_someProp = value; RaisePropertyChanged("SomeProp");} // observable property
}
в XAML:
<EgControl name="egControl" Content={Binding SubVM.Sub2VM.SomeProp} />
Теперь, если изменить Sub2VM свойство по egControl не автомагически обновляется со значением SomeProp нового экземпляра Sub2VM , Как кто-то добивается этого, без необходимости вручную поднять все события, измененные в Sub2ViewModel, из набора свойств Sub2VM?
Использование: Prism .NET 4.0
Значение должно быть изменено. Вы, вероятно, делаете что-то не так, но вам нечего говорить, если вы не публикуете свой фактический код. –
Вы правы. Он делает это по умолчанию.У меня был код, в котором наблюдаемое свойство имеет доступ к другому оператору в дочернем объекте (отличном от вопроса, который я разместил). Я исправил его, подписавшись на свойство дочернего объекта и изменив событие изменения основного свойства. Благодаря! – LadderLogic