1

私のビューモデルには、シリアライズ可能CurrentObjectなタイプのプロパティがあります。SomeDomainType

プロパティを編集するためのフォームがあり、ボタンの 1 つは ICommand にデータバインドされた「Commit Changes」CommitChangesCommandです。

オブジェクトが変更された場合、つまりオブジェクトが「ダーティ」である場合にのみ、このボタンが (CanCommitChangesCommand()ジョシュ・スミスの と適切に配線された を介して) アクティブになることを期待しています。RelayCommand

もう一度言いますが、私が聞きたいのは:

「オブジェクトをダーティーとしてマークして、いくつかprivate bool ThatPropertyIsDirty()の内部でそれをチェックする方法を取得するにはどうすればよいですかCanExecute()?」

4

1 に答える 1

1

その音 より:

  1. プロパティIsDirtySomeDomainType
  2. イベントを発生さIsDirtyせるセッターでNotifyPropertyChangedIsDirty
  3. SomeDomainTypeオブジェクトを考慮して変更するすべてのプロパティでDirty、セッターでIsDirtytrueに設定します

SomeDomainTypeこれは、インターフェースを実装することを前提としていINotifyPropertyChangedます。そうでない場合は、その周りにラッパー クラスを作成し、SomeDomainTypeそのラッパーに上記の変更を加えます。

于 2013-10-10T19:14:23.017 に答える