0

我想知道当按下按钮时如何在主窗口中创建不同的视图。我不确定正确的术语,所以这妨碍了我的 google fu。

我在想主要的查看区域将是一个内容控件,当事件发生时我可以改变它。我画了一张小图来帮助说明我的想法/想法。

任何输入将不胜感激。谢谢! 粗模型

4

2 回答 2

5

使用 MVVM 方法来实现这个场景真的很容易......

为您的 MainView 创建一个 ViewModel。然后定义用户控件的 ViewModel 的属性

例如,您有两个 UserControl FirstViewSecondView然后在视图模型中创建一个 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 工具包.. :)

于 2012-01-10T20:41:36.180 回答
2

在右边你可以有一个框架。然后按钮会将不同的页面或用户控件绑定到该框架的内容。

于 2012-01-10T19:28:11.270 回答