0

私は WPF と MVVM を使用しているため、ビュー内のものにバインドされているビュー モデルに多くのプロパティがあります。これらのプロパティの大部分は次のようになります...

private DateTime _newRevisionDate = DateTime.Now;

public DateTime NewRevisionDate {
  get {
    return _newRevisionDate;
  }
  set {
    if (_newRevisionDate != value) {
      _newRevisionDate = value;
      RaisePropertyChanged(ViewModelUtils.GetPropertyName(() => NewRevisionDate));
    }
  }
}

RaisePropertyChanged() メソッドの由来である MvvmLight を使用しており、ViewModelUtils.GetPropertyName() メソッドを使用してプロパティ名から文字列を作成し、マジック文字列の必要性を回避しています。

さて、問題は、ビュー モデルにそのようなプロパティをいくつか追加すると、ほとんど同じコードが大量に作成されることです。これには巧妙なリファクタリングが必要なので、1 行のコードを使用して各プロパティを定義するだけです。

しかし、私はまだこれを行う方法を見つけることができませんでした。標準の C# 自動プロパティのようなことができると便利です...

public DateTime NewRevisionDate { get; set; }

...しかし、プロパティが新しい値に設定されるたびに RaisePropertyChanged() を呼び出す必要があります。

誰でもアイデアはありますか?ありがとう

4

1 に答える 1