2017-07-27 5 views
-1

私はMVVMプロジェクトで次の問題に直面しました。私はViewModelオブジェクトを持っています。これは、GUIからプロパティを更新しているときにイベントをモデルに通知します。MVVMのGUIとモデルの間の通知メカニズムを適切に配置する方法はありますか?

これは正常に動作していましたが、この後プログラムのモデルでプロパティを更新してGUIをリフレッシュしました。 Iは、以下を使用してもよい

等..>モデル - モデル - >のviewmodel - > GUI - >ビューモデル: したがって私はViewModelに通知するためのモデルでイベントプロパティを加え、iは次のループを持っているので..アプリケーションを掛けてしまいましたソリューションの方法:

1)モデルに2つの異なるメソッドを作成する:GUIからプロパティを更新し、プログラムを更新する。

2)モデルでは、(リフレクションによって)検証を実行します。どのオブジェクトがメソッドを呼び出し、後で通知するかどうかを確認します。

ありがとうございました!

答えて

0

最も簡単な方法は、プロパティの値が実際に変更された場合、つまり新しい値と現在の値を比較する場合にのみ、イベント(INotifyPropertyChanged)を発生させることです。

私はまた、あなたが使っているフレームワークを知っていることに興味があります。MVVMフレームワークによって通常処理される多くのことを手作業でやっているように思えます。この?

+0

はい、そうです、私はwpf guiのためにこれを手動で行います。 MVVMフレームワークのコードを変更するのが遅すぎる状態にプロジェクトがあると思います(メッセージを投稿したときにこのフレームワークについて聞いています)。しかし、INotifyPropertyChangedについてのあなたのアドバイスはうまくいかないでしょう - これは私が使用していない単純なパターンであり、私もこの作業を手動で行っています。 –

+0

私のアドバイスはまだ値を実際に変更したときに発生します。 –

+0

これは、ループの停止条件を提供します。そして、MVVMのフレームワークはたくさんありますが、私は特定のものを推薦していませんでした。 –

関連する問題