MVVMlight如何实现model层的数据变化使界面改变
有没有用过mvvmlight的高手,告诉下怎么实现model层的数据变化让界面改变?在model层有个string类型的属性log,会随时间变化,怎么实现view里面的对应textblock变化呢?View应该是绑定了VM层的属性的,那么是不是Model的变化要通知VM呢,怎么在mvvmlight里实现呢? --------------------编程问答-------------------- "会随时间变化"这一操作放在viewmodel层不就可以了吗。 --------------------编程问答-------------------- mvvm都没有搞清楚吧。。。 --------------------编程问答-------------------- ...这个随时间变化是另外的程序控制的,我的程序只负责获取显示啊 --------------------编程问答-------------------- 绑定,通知
INotifyPropertyChanged
Binding --------------------编程问答-------------------- 可是我绑定的是vm层的,model层的数据怎么通知呢? --------------------编程问答-------------------- 能详细解释下吗 --------------------编程问答-------------------- 一句两句解释不清楚啊,主要是绑定和Command的问题 --------------------编程问答-------------------- 用这个集合ObservableCollection<T> --------------------编程问答-------------------- 嗯,如果是个list我知道转为observablecollection,可是这是个string,我就不知道怎么办了 --------------------编程问答-------------------- 最后我只能使用个静态事件从model层通知上来,可是我觉得这么实现不正确,谁知道正确的方法呢? --------------------编程问答-------------------- 1. model实现INotifyPropertyChanged接口
2. model在viewmodel的实例化对象通过property暴露出来
3. view的textblock绑定的path就是“model对应的属性名称.需要绑定的属性字段”
不知道俺说清楚没有。。 - -~将就看看~ --------------------编程问答-------------------- 当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作。INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。
private TreeModel treeItem;
public TreeModel TreeItem
{
get { return treeItem; }
set
{
if (treeItem == value) return;
treeItem = value;
this.RaisePropertyChanged(() => this.TreeItem);
}
}
SelectedItem="{Binding Path=TreeItem,Mode=TwoWay}">
补充:.NET技术 , C#