----------------------此地留坑----------------------------------
刚刚从一枚准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