<font style="color:rgb(51, 51, 51);">ObserableObject</font>和<font style="color:rgb(51, 51, 51);">RelayCommand</font>。步骤如下:
<font style="color:rgb(51, 51, 51);">ObserableObject</font>类文件,代码如下:
using Prism.Mvvm;using System;using System.Collections.Generic;using System.ComponentModel;using System.Diagnostics;using System.Linq;using System.Linq.Expressions;using System.Text;using System.Threading.Tasks;namespace MVVMSum{[Serializable]public abstract class ObserableObject : INotifyPropertyChanged{[field:NonSerialized]public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged(PropertyChangedEventArgs e){var handler = this.PropertyChanged;if (handler != null){handler(this, e);}}protected void RaisePropertyChanged<T>(Expression<Func<T>> propertyExpression){var propertyName = PropertySupport.ExtractPropertyName(propertyExpression);this.RaisePropertyChanged(propertyName);}protected void RaisePropertyChanged(string propertyName){VerifyPropertyName(propertyName);OnPropertyChanged(new PropertyChangedEventArgs(propertyName));}[Conditional("DEBUG")][DebuggerStepThrough]public void VerifyPropertyName(string propertyName){if (TypeDescriptor.GetProperties(this)[propertyName] == null){Debug.Fail("无效属性名:" + propertyName);}}}}
未完结,需要看一下源码。这里记一个知识点:MVVM一个很好的框架——Prism。
