【发布时间】:2017-03-25 11:00:44
【问题描述】:
我有这段代码,我有我的 ViewModel,而 ViewModel 有一个属性,它可以获取它的所有属性。
这是粗略的伪代码:
public class MyClassViewModel : INotifyPropertyChanged
{
public MyClassViewModel ()
{
}
public BaseClass myClassBase { get ; set; }
public string Title
{
get
{
return myClassBase.Title;
}
set
{
myClassBase.Title = value;
RaisePropertyChanged("Title");
}
}
public string Description
{
get
{
return myClassBase.Description;
}
set
{
myClassBase.Description = value;
RaisePropertyChanged("Description");
}
}
}
这是基类:
public class BaseClass
{
public BaseClass()
{
}
public string Title {get;set;}
public string Description {get;set;}
}
CheckItemViewModel 是绑定到 UI 的。因此,如果我执行类似 MyClassViewModel .Title = "Test"; 之类的操作,它会正确刷新 UI。
但是,出于特定原因(Javascript - Chakra 接口),我需要执行 MyClassViewModel.myClassBase.Title = "Test" 之类的操作。那么问题在于 UI 不再刷新,因为它没有 RaisePropertyChanged。
即使我在 BaseClass 内部实现了 RaisePropertyChanged,它仍然不起作用。它不起作用,因为 BaseClass 中的PropertyChanged 始终为空。
我怀疑这是因为 MyClassViewModel 是绑定到 UI 的。所以 BaseClass 中的 PropertyChanged 永远不会被绑定。
有没有办法触发 Parent 的 RaisePropertyChanged?
谢谢
【问题讨论】:
标签: c# uwp winrt-xaml inotifypropertychanged chakra