.Net 开发中用到的MVVM Light Toolkit源码解读

来源:互联网 发布:python time 时间加减 编辑:程序博客网 时间:2024/05/17 21:52

 ----------------------此地留坑----------------------------------


刚刚从一枚准Java程序员 转到.Net开发

  这个过程还是挺爽的  仿佛有打开一个宝藏的大门。

 -------------------------------------------------------------------

namespace GalaSoft.MvvmLight{    public class ObservableObject : INotifyPropertyChanged    {        public ObservableObject();        protected PropertyChangedEventHandler PropertyChangedHandler { get; }        public event PropertyChangedEventHandler PropertyChanged;        protected static string GetPropertyName<T>(Expression<Func<T>> propertyExpression);        public virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null);        public virtual void RaisePropertyChanged<T>(Expression<Func<T>> propertyExpression);        [Conditional("DEBUG")]        [DebuggerStepThrough]        public void VerifyPropertyName(string propertyName);        protected bool Set<T>(Expression<Func<T>> propertyExpression, ref T field, T newValue);        protected bool Set<T>(string propertyName, ref T field, T newValue);        protected bool Set<T>(ref T field, T newValue, [CallerMemberName] string propertyName = null);    }}


1.关于mvvm-绑定

通过让数据绑定系统负责这种同步开发人员可以专注于计算数据对象属性的值而不必担心如何更新UI

此外绑定只是松散耦合 即便绑定的结果无效 应用程序也不会崩溃。

实际情况是 多个视图 与给定的viewmodel关联 或者是 复杂视图拆分为多个viewmodel的情况也并不少见

https://msdn.microsoft.com/zh-cn/magazine/jj651572.aspx



1 0
原创粉丝点击