げんさん日記

プログラミングで気付いた事等を書きます。

Viewとバインドするモデルのベースを作成する。

2021年05月20日 15時42分27秒 | WPF
Viewとバインドするモデルの共通処理をベースとして作成します。

クラスの名前をBaseBindableModelにしてBaseModelを継承します。
※BaseModelは記事『全モデルのベースを作成する。(IDisposable)』を参照
public abstract class BaseBindableModel : BaseModel
{
}

プロパティチェンジイベントを定義します。
public event PropertyChangedEventHandler PropertyChanged;

プロパティを保存するDictionaryを定義します。
private Dictionary PropertieItems { get; set; }

プロパティの変更通知メソッドを作成します。
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
  if (this.PropertyChanged != null)
  {
   this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
  }
}

GetメソッドとSetメソッドを作成します
※詳細は記事『ViewModelのバインディングプロパティを簡単に定義する。』を参考

使用例
Viewへの通知まで行ってくれます。
public Class TestBindableModel : BaseBindableModel
{
  public double Value
  {
   get { return base.Get<double>(); }
   set { base.Set(value); }
}