MVVMLight 太过爱你忘了你带给我的痛 2022-07-15 10:39 139阅读 0赞 # MVVMLight随便讲讲 # 推荐链接及博客: * **[http://www.cnblogs.com/manupstairs/p/4890300.html][http_www.cnblogs.com_manupstairs_p_4890300.html]** * **[http://blog.csdn.net/andrew\_wx/article/details/37757147][http_blog.csdn.net_andrew_wx_article_details_37757147]** * **[http://www.cnblogs.com/yuefei/p/3799430.html][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; } } [http_www.cnblogs.com_manupstairs_p_4890300.html]: http://www.cnblogs.com/manupstairs/p/4890300.html [http_blog.csdn.net_andrew_wx_article_details_37757147]: http://blog.csdn.net/andrew_wx/article/details/37757147 [http_www.cnblogs.com_yuefei_p_3799430.html]: http://www.cnblogs.com/yuefei/p/3799430.html
相关 MVVMLight在NuGet安装后,ViewModelLocator出现错误的问题 MVVMLight在NuGet安装后,ViewModelLocator出现错误的问题;将using Microsoft.Practices.ServiceLocation;改为 ゝ一世哀愁。/ 2023年07月08日 05:48/ 0 赞/ 14 阅读
相关 MVVMLight介绍以及在项目中的使用 一、MVVM概述 MVVM是Model-View-ViewModel的简写,主要目的是为了解耦视图(View)和模型(Model)。 MVVM结构如下: ![在这里插入 心已赠人/ 2022年11月27日 07:04/ 0 赞/ 206 阅读
相关 2021-10-08 WPF上位机 60-MvvmLight框架IDialogService和DispatcherHelper ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5b6u6L2vTVZQI 古城微笑少年丶/ 2022年09月14日 11:20/ 0 赞/ 171 阅读
相关 2021-10-04 WPF上位机 57-MvvmLight的主要程序库 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5b6u6L2vTVZQI 爱被打了一巴掌/ 2022年09月14日 09:39/ 0 赞/ 136 阅读
相关 2021-10-04 WPF上位机 56-MvvmLight框架的介绍 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5b6u6L2vTVZQI 朴灿烈づ我的快乐病毒、/ 2022年09月14日 09:39/ 0 赞/ 162 阅读
相关 2021-10-06 WPF上位机 59-MvvmLight框架命令绑定和消息机制 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5b6u6L2vTVZQI 谁借莪1个温暖的怀抱¢/ 2022年08月28日 08:52/ 0 赞/ 197 阅读
相关 2021-10-05 WPF上位机 58-MvvmLight框架对象 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5b6u6L2vTVZQI 墨蓝/ 2022年08月28日 07:46/ 0 赞/ 179 阅读
相关 MVVMLight MVVMLight随便讲讲 推荐链接及博客: [http://www.cnblogs.com/manupstairs/p/4890300.html][http_w 太过爱你忘了你带给我的痛/ 2022年07月15日 10:39/ 0 赞/ 140 阅读
相关 C# — MvvMLight框架入门资源 MVVMLight框架入门(一)到(四):[https://www.cnblogs.com/manupstairs/p/4890300.html][https_www.cnbl 古城微笑少年丶/ 2021年12月03日 07:39/ 0 赞/ 210 阅读
还没有评论,来说两句吧...