選択を行ViewModel性またはメール間の通信にViewModel、ビューを使用ョ光ツールキット
-
25-09-2019 - |
質問
を使用していまョ光ツールキット(I love).私は現在、メールの場合一部の相互作用からViewModelを対象とした特待プログラム"による消費る方は受付にお申し出ください通常、これらの種類のメッセージを示すビューは次のように非表示、表示の確認メッセージデータの保存等
この作品。このコンストラクタのリスナーをアンインストール、登録メッセンジャー:
Messenger.Default.Register<NotificationMessage<PaperNotification>>(this, n => HandlePaperNotification(n));
時を使用していたメッセンジャーの発信横断的な懸念とViewModelsようなアイデンティティー)で見た場合のViewModelの清掃をViewModelLocatorの基底クラスViewModels(ViewModelBase)unregistersず加入します。いさなければいけないのでしョ光ツールキットの取り扱います。しかし、私が使用して、ビューしています明示的に登録は解除して閉館時間のような:
Messenger.Default.Unregister(this);
私が実施する基底クラスのビューを継承します。
しかし、襲いるのではないでしょうかは、コードの香りに使用するメッセンジャーの眺望---で、これが最高です。私だってではなくプロパティを作成しますのViewModelにバインドさんのビューの要素です。の例に隠形性がbooleanの"表示"になっています。私のことを考えれば、私は多くの場合ことを書くValueConverter.片少なくなってきていると思いテスト容易化.他の方の希望が取り入れられていないかにコードおよびその導入過剰ValueConvertersは、コードの匂いが大きいです。
は、その後のすべてを私の質問は、この:
はなくメッセージ内で眺めているのか、あるいは追加しておくとよいでし特性(潜在的にValueConverters)のViewModelドでより結合性ストッキングがあります。
解決
にョ.ViewModel comunicatesとをはじめ、テレビを見ながらDataBindingやっています。が必要な場合その他の機能を実装する必要がありまで利用します。メールがっているとみViewModels.景色がき"か"visualisersのデータViewModel.
他のヒント
はMVVM光におけるメッセージングロジックのviewmodels間の通信のために存在します。私は、結合および/またはコマンドで解決できなかったことを見るとViewModelに間のすべての通信に遭遇したことがありません。時々私は価値コンバータを必要と時々私はコードビハインドでコードが必要ですが、私はViewModelには直接ビューにデータをプッシュしなければならなかったことがありません。
これは興味深い議論であると私はビュー通信にビューモデルに疑問を抱いたとき、私はこのスレッドを発見しました。興味深いことに、MVVMLightの作成者は見つけるように見えることは完全にビューモデルからメッセージを送ることが許容を表示します。良いMVVMデザインであるかについての意見の相違の他の例。