using System.ComponentModel; using System.Runtime.CompilerServices; namespace LocalizationTool.ViewModels { /// ViewModel 基类:属性变更通知。 public abstract class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string name = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); /// 设置字段并通知变更,返回是否有变化。 protected bool Set(ref T field, T value, [CallerMemberName] string name = null) { if (Equals(field, value)) return false; field = value; OnPropertyChanged(name); return true; } } }