私のSilverlightアプリケーションでは、ユーザーはフォームの複数のテンプレートを作成できます。選択したテンプレートに応じて、フォームには特定の順序で一連のビューが表示されます。さらに、一部のビューは、テンプレートに存在する場合は「必須」です。クライアントは、そのようなビューをポップアップフォームに表示することを望んでいるため、ユーザーは、フォーム上の他のビューに移動する前に、まずこれらの「必要な」ビューだけに焦点を合わせます。
今、私はこの要件のMVVMパターンを破っています。理由は次のとおりです...1。ViewModelはデータベースからテンプレートを読み取り、ビューを(MEFを使用して)取得できますが、フォームに追加するには、レイアウトグリッドの名前を認識し、子としてビューを追加する必要があります。そのグリッド。これは、MVVMデザインパターンに反するUI要素についてViewModelに通知するようなものです。
- ポップアップに表示する必要のある「必須」ビューの場合、viewModelはChildWindowインスタンスを作成し、それに「必須」ビューを追加してから、Childwindowを表示する必要があります。クローズ/クローズイベントも処理します。
私のアプローチには欠陥があると確信していますが、ここでUIロジックをビジネスロジックから明確に分離する方法を見つけることはできません。誰かがより良いアプローチを提供できますか?
ありがとう。A