MVVMモードを使用して、WPFアプリケーションでダイアログボックスを作成します:ベストプラクティス?
この記事では、MVVMモードを使用して、この方法でダイアログボックスを作成して管理しています。交流。
作業原則:
このメソッドには、次のコンポーネントが含まれています
iuiwindialogservice:
ダイアログボックスウィンドウのダイアログボックスサービスの表示を担当するインターフェイス。
wpfuiwindowdialogService:
iuiwindowdialogserviceインターフェイス、ウィンドウディアログウィンドウを作成し、ダイアログボックスとして表示します。 -
windowdialog:ダイアログボックスのコンテンツのコンテナ。
- idialogrtvmhelper:ダイアログボックスビューモデルによって実装されたインターフェイスは、ダイアログボックスの回転と結果を返すために使用されます。
requestclosedialogeventargs:- ダイアログボックスの閉鎖結果を渡すために使用されるイベントパラメーター。
dataTemplate:
アプリケーションリソースファイルのデータテンプレート、ダイアログボックスビューモデルを対応するビューにマップします。 -
この設定を通じて、ビューモデルは、iuiwindowdialogserviceで対応するメソッドを呼び出すことにより、ダイアログボックスウィンドウを開始できます。次に、ダイアログボックスビューモデルは、RequestClosedialogイベントを指示し、結果をパラメーターとして渡すことにより、ダイアログボックスを示すことができます。
利点:-
decodia:- ダイアログボックスのロジックとビューモデルのデータと動作を分離します。
繰り返し:
ダイアログボックスサービスとWindowDialogウィンドウは、さまざまなタイプのダイアログボックスで再利用できます。
柔軟性:
ビューモデルは、カスタムシャットダウン動作を定義するために、Idialogresultvmhelperインターフェイスを実現できます。
インシデント処理の弱い:この方法では、弱いイベントを使用して、長期イベントサブスクリプションに関連するメモリリークを処理します。
- 改善の提案:
テキストで言及されているわずかな改善は、requestClosedialogイベントを拡張してブールパラメーターを受け入れることです。これは、以下に示すように、イベントとイベントのパラメーターを変更することで実装できます。
以上がWPFダイアログにMVVMを使用することは良い練習ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。