1

まず第一に、私はMVVMの概念に非常に慣れておらず、私がやりたいことの説明をかなり広範囲にわたって探してきましたが、役に立たなかったことを皆さんに知らせたいと思います。

私が取り組んでいるプログラムには、メインウィンドウのナビゲーションを制御する必要のあるいくつかのボタンが付いたUserControlがあります。メインウィンドウで切り替えられるようにしたい3つの異なる「ページ」があります。ページの代わりに、(何らかの理由で、これが最善のアプローチでない場合は修正してください)各ページにUserControlを使用し、表示を正しいものに切り替えることにしました。切り替え中にデータを保持する必要があるため、Usercontrolsの新しいインスタンスを作成しても機能しないと思います。

私の質問は、可視性を切り替えることができるように、ただしMVVMの方法で、イベントを「NavBarView」からメインウィンドウにバブルするにはどうすればよいですか?私はこれを完全に間違った方法で行っている可能性があることを知っています。このナビゲーションを実現するためのより良い方法について提案をいただければ幸いです。

WPFを使用する必要があるため、WinFormsはオプションではありません。WinFormsの透明度とカスタムコントロールが多すぎます。

4

1 に答える 1

0

可能であれば、メインウィンドウの「NavBar」部分を作成し、それを使用してフォームのサブコントロールを制御します。ユーザーコントロールを慎重にネストします。あなたがそれを避けることができれば私はそうします(重要な兆候はあなたがそれをどこか他の場所で再利用するつもりであるということです)。私はしばらく前にプロジェクトを引き継ぎました。メインウィンドウには、3つの個別の高度に結合されたユーザーコントロールがあり、すべてが連携する必要があり、それは悪夢でした。ある程度安全に動作させる唯一の方法は、すべてのデータコンテキストを同じビューモデルに設定することでした。私が最初からそれをしなければならなかったならば-単一のビューで完全に異なるアプローチをとったでしょう。

于 2012-10-29T04:24:57.960 に答える