MVVMLight
来源:互联网 发布:太原软件 编辑:程序博客网 时间:2024/05/02 02:53
MVVMLight随便讲讲
推荐链接及博客:
- http://www.cnblogs.com/manupstairs/p/4890300.html
- http://blog.csdn.net/andrew_wx/article/details/37757147
- http://www.cnblogs.com/yuefei/p/3799430.html
注意点
View实体类(即MVVM里面的Model层)继承ObservableObject。
而ObservableObject已经继承了INotityPropertyChanged属性变更通知接口。
注意下面代码的set方法和RaisePropertyChanged方法。
public class Person : ObservableObject { private string _Name; public string Name { get { return _Name; } set { Set(ref _Name, value); } } private int _Age; public int Age { get { return _Age; } set { _Age = value; RaisePropertyChanged("Age"); } } otityPropertyChanged }
每个ViewModel类都将继承MVVMLight的 ViewModelBase 为父类
1、MVVM里面的VM(即ViewModel)继承了ViewModelBase,而ViewModelBase其实也继承了INotityPropertyChanged,但是它是先继承ObservableObject,而ObservableObject继承了INotityPropertyChanged。
2、当RaisePropertyChanged的属性名称参数为空,而通过编译器可以智能加上,可以通过反编译工具知晓,这点改进这点很人性化。
public class PersonViewModel : ViewModelBase { public PersonViewModel() { Persons = SetItems(); AddPersonCommand = new RelayCommand(AddPerson); EditPersonCommand = new RelayCommand(EditPerson); } private ObservableCollection<Person> _Persons; public ObservableCollection<Person> Persons { get { return _Persons; } set { _Persons = value; //这边加与不加RaisePropertyChanged()我认为是没有区别的。 //RaisePropertyChanged(); } } public ICommand AddPersonCommand { get; set; } public ICommand EditPersonCommand { get; set; } private ObservableCollection<Person> SetItems() { var items = new ObservableCollection<Person>(); foreach (var item in Enumerable.Range(0, 10)) { Person p = new Person() { Name = "Name" + item, Age = item }; items.Add(p); } return items; } private void AddPerson() { Persons.Add(new Person { Name = "织田信长", Age = 28 }); } private void EditPerson() { Persons.First().Name = "丰城秀吉"; Persons[Persons.Count - 2].Name = "德川家康"; Persons[Persons.Count - 1].Age = 70; } }
0 0
- MVVMLight
- MVVMLight+WPF
- MVVM:MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- 使用 MVVMLight 绑定数据
- 使用 MVVMLight 命令绑定
- 使用 MVVMLight 消息通知
- MVVMLight的使用方法
- MVVMLight使用(一)
- MVVMLight的Messenger
- MvvmLight中的Messenger详解
- MVVMLight的使用方法
- [MVVM]01-MVVMLight安装
- MVVMLight 1:MVVMLight介绍以及在项目中的使用
- Silverlight MVVM模式开发 -MVVMLight
- 软考总结2016年11月13日
- ScrollView嵌套ListView的bug问题解决
- 常用学习连接
- VS2013配置OpenGL编程环境
- 了解RxJava以及如何在Android应用中使用它
- MVVMLight
- Redis内部数据结构详解之简单动态字符串(SDS)
- 左右法则小练习
- 2016年11月13日安装cocoapods
- 文件锁(Filelock)与锁定映射文件部分内容
- 11.13 模拟题
- [Sqoop]Sqoop导入与导出
- 趋势科技笔试题 DNA串查重 (4进制)
- android inline hook 学习笔记