0

ボタンが押されたときにメインウィンドウにさまざまなビューを作成するにはどうすればよいのでしょうか。正しい用語がわからないので、それが私のグーグルフーを妨げています。

メインの表示領域はコンテンツコントロールであり、イベントが発生したときに変更できると思います。私は自分の考えや考えを説明するために小さな絵を描きました。

任意の入力をいただければ幸いです。ありがとう! 原油モックアップ

4

2 に答える 2

5

MVVMアプローチを使用してこのシナリオを実装するのは本当に簡単です....

MainView の ViewModel を作成します。次に、UserControls の ViewModels のプロパティを定義します

たとえば、2 つの UserControl がFirstViewあり、ビューモデルにViewModel (通常は ViewModelBase と呼ばれる)SecondViewのプロパティを作成します。ViewToLoadProperty

バインディングを次のように設定

        <!--  Panel For Hosting UserControls  -->
        <Border Grid.Column="2">
            <ContentControl Name="userControlContentControl"
                            Content="{Binding Path=ViewToLoadProperty,
                                              }">
                <ContentControl.Resources>
                    <DataTemplate DataType="{x:Type ViewModelLayer:FirstViewModel}">
                        <ViewLayer:FirstView/>
                    </DataTemplate>
                    <DataTemplate DataType="{x:Type ViewModelLayer:SecondViewModel}">
                        <ViewLayer:SecondView />
                    </DataTemplate>
                                        </ContentControl.Resources>
            </ContentControl>
        </Border>
        <!--  Panel For Hosting UserControls  -->

次に、ボタンをクリックすると コマンドを使用して、それぞれの ViewModel Intance を this(ViewToLoadProperty) プロパティに設定します...(UseRelayCommanndsまたはそのようなもの)

DataTempatesViewModelの適​​切なタイプに従って適切なViewを選択することで、残りの作業を行います

MVVMパターンを実装している場合は、MVVMLightツールキットを使用できます.. :)

于 2012-01-10T20:41:36.180 に答える
2

右側にはフレームがあります。次に、ボタンは別のページまたはユーザー コントロールをそのフレームのコンテンツにバインドします。

于 2012-01-10T19:28:11.270 に答える