0

C#WPFで作業しているグラフエディターのプロパティパネルを実装しています。1つのタイプのオブジェクトのプロパティパネルには、いくつかのフィールドがあります。

  • 名前
  • サイズ
  • タイプ-サイズに依存するコンボボックス
  • ペイロード-サイズとタイプに依存するコンボボックス
  • tr-サイズ、タイプ、ペイロード、およびdb値から計算
  • delay-サイズ、tr、およびdbの値から計算されます

すべてのフィールドが積極的に更新/更新されるように、ビューモデルをどのように最適に構成する必要がありますか?タイプやサイズを変更した場合と同様に、TRは自動的に再計算され、GUIで更新されます。などなど。

PropertyChangedEventのようなEventListnersに依存する必要がありますか?そして、どのように移行状態を管理しますか?サイズが設定されているが、タイプがまだ設定されていない場合のように、trはnullExceptionエラーをスローしますが、これをキャッチ/無視する必要がありますか?

4

1 に答える 1

1

最も簡単な方法は、すべてのプロパティ セッターで再計算を強制して、値が変更されるたびに必要なものをすべて再生成することだと思います。つまり、(通常どおり) バインドしたいすべてのもののプロパティを持つ ViewModel と、必要なものすべてを再計算するメソッドを作成します。次に、各プロパティ セッターで、そのメソッドを呼び出します。

以下のように、再計算メソッドを PropertyChanged 起動メソッドに入れることもできますが、私は OnPropertyChanged を単純にするのが好きなので、個人的にはそのアプローチのファンではありません。

protected virtual void OnPropertyChanged(string propName)
{
   if (PropertyChanged != null)
   {
      Recalculate();
      PropertyChanged(new PropertyChangedEventArgs(propName);
   }
}
于 2012-09-10T20:41:30.627 に答える