我想知道如何在按下按钮时在主窗口中创建不同的视图。我不确定正确的术语,因此这妨碍了我的谷歌。
我认为主要的观看区域是内容控件,我可以在事件发生时更改。我画了一张小图来帮助说明我的想法/想法。
任何输入将不胜感激。谢谢!
答案 0 :(得分:5)
使用MVVM方法实现这个Senario真的很容易....
为您制作ViewModel MainView。然后定义UserControls的ViewModel的属性
例如,您有两个UserControl为FirstView
和SecondView
,然后在您的视图模型中将属性设置为ViewModel类型的ViewToLoadProperty
(通常称为ViewModelBase)
将绑定设置为
<!-- 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设置为此(ViewToLoadProperty)属性...(使用RelayCommannds
或类似的东西)
DataTempates
将根据正确的ViewModel类型选择正确的视图完成剩下的工作
如果你正在实现MVVM模式,你可以使用MVVMLight工具包.. :)
答案 1 :(得分:2)
在右边你可以有一个框架。然后该按钮会将不同的页面或用户控件绑定到该帧的内容。