我对MVVM模式不熟悉,因此对MVVMCross不熟悉。但是我似乎无法弄清楚如何通知ViewModel更改模型的属性。也许我对模式的理解是错误的,并且使用了错误的体系结构?
这是我的Model类:
public class WallModel: MvxNotifyPropertyChanged
{
private double _oc;
public double oc
{
get { return _oc; }
set
{
_oc = value;
RaisePropertyChanged(() => oc);
}
}
}
在我的ViewModel中,我有WallModel类的以下属性:
private WallModel _wallModel = new WallModel();
public WallModel wallModel
{
get { return _wallModel; }
set
{
SetProperty(ref _wallModel, value);
}
}
我可以从模型中检索数据,所以问题不在于绑定。
当前发生的情况是,模型中oc属性的set
正在触发,但ViewModels的set
没有被触发。
我希望发生的是RaisePropertyChanged(() => oc);
会导致viewmodulesset
着火,但它没有。
RaisePropertyChanged(() => oc);
做什么?我是否误解了MVVM模型,我是否应该更改我的架构?**我怎样才能得到想要的行为?
我已经尝试手动实现INotifyPropertyChanged
,但这并不wprk
RaisePropertyChanged(() => oc);
的作用是只通知WallModel的属性oc改变。同时,ViewModel上的WallModel仍然持有WallModel的相同对象,因此它假设没有任何变化。
尝试按照此指南获得通知。