ボタンが押されたときにメインウィンドウにさまざまなビューを作成するにはどうすればよいのでしょうか。正しい用語がわからないので、それが私のグーグルフーを妨げています。
メインの表示領域はコンテンツコントロールであり、イベントが発生したときに変更できると思います。私は自分の考えや考えを説明するために小さな絵を描きました。
任意の入力をいただければ幸いです。ありがとう!
ボタンが押されたときにメインウィンドウにさまざまなビューを作成するにはどうすればよいのでしょうか。正しい用語がわからないので、それが私のグーグルフーを妨げています。
メインの表示領域はコンテンツコントロールであり、イベントが発生したときに変更できると思います。私は自分の考えや考えを説明するために小さな絵を描きました。
任意の入力をいただければ幸いです。ありがとう!
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
またはそのようなもの)
DataTempates
ViewModelの適切なタイプに従って適切なViewを選択することで、残りの作業を行います
MVVMパターンを実装している場合は、MVVMLightツールキットを使用できます.. :)
右側にはフレームがあります。次に、ボタンは別のページまたはユーザー コントロールをそのフレームのコンテンツにバインドします。