我想知道当按下按钮时如何在主窗口中创建不同的视图。我不确定正确的术语,所以这妨碍了我的 google fu。
我在想主要的查看区域将是一个内容控件,当事件发生时我可以改变它。我画了一张小图来帮助说明我的想法/想法。
任何输入将不胜感激。谢谢!
我想知道当按下按钮时如何在主窗口中创建不同的视图。我不确定正确的术语,所以这妨碍了我的 google fu。
我在想主要的查看区域将是一个内容控件,当事件发生时我可以改变它。我画了一张小图来帮助说明我的想法/想法。
任何输入将不胜感激。谢谢!
使用 MVVM 方法来实现这个场景真的很容易......
为您的 MainView 创建一个 ViewModel。然后定义用户控件的 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 类型选择正确的 View 来完成剩下的工作
如果您正在实施 MVVM 模式,您可以使用 MVVMLight 工具包.. :)
在右边你可以有一个框架。然后按钮会将不同的页面或用户控件绑定到该框架的内容。