次の方法で共有


UserControlの切り替え

質問

2015年8月25日火曜日 11:57

いつも利用させて頂きありがとうございます。

現在、WPF(MVVM)でアプリケーションを作成しております。

初歩的な質問であれば申し訳ないのですが、

MainWindowのGirdにUserControlを設定したとして、なにかアクションがあった際に別のUserControlを同じ位置に切り替えるというような動作が行えればと考えているのですが、どのようにすればよろしいでしょうか。

よろしくお願い致します。

すべての返信 (3)

2015年8月25日火曜日 13:50 ✅回答済み

以下の例では、ViewModelによって自動的にView(ここではユーザーコントロール)を切り替えています。

Model-View-ViewModel デザイン パターンによる WPF アプリケーション
https://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx#id0090097

上記のページの、

「ViewModel に View を適用する」より以下を引用

図 10 に示すように、タブ項目のコンテンツが ViewModel オブジェクトに設定されると、この辞書の型指定された DataTemplate によって表示するビュー (つまり、ユーザー コントロール) が指定されます。

★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/


2015年8月25日火曜日 12:03

コントロールA、Bを両方配置しておいて、Visibilityで制御するのが良いと思います。

Visibilityプロパティを「なにかアクションがあった際」のフラグにバインドしておいて、AがVisibleの時はBはCollapseにしておく、フラグが変わればその反対、みたいな。


2015年8月27日木曜日 6:57

ご回答頂いたお二方、ありがとうございました。

両方の方法で、想定した動作が出来ることが確認できました。

また、trapemiya様の回答は自分にはない知識でしたので、調べていく上でとても勉強になりました。

お二方、本当にありがとうございました。