如何在WPF中创建一个视图内的视图

3
我解释一下我的问题,因为我对 UI 设计还比较新:
我有一个主视图,在其左侧显示一个树形视图。当选择某个元素时,我想在同一窗口的右侧显示该项的描述。这个描述的设计取决于该项的性质。因此,我为每种项目类型创建了一个相应的视图,对应不同可能的设计。
现在,当我单击树形视图时,我不知道如何在同一窗口的右侧显示相应的视图。(我不是在询问如何捕获事件,只是想在另一个视图中显示一个视图,就像动态绘制控件一样)。
这种情况是否可能?如果不行,你会建议采用什么方法?
非常感谢。

2
https://www.google.de/search?q=wpf+usercontrol - Joel
好的,谢谢你。现在这样就可以解决问题了。但是如果我真的需要它成为一个视图而不是一个控件,这样它就有自己的调度线程。有办法吗? - qwark
1个回答

2

这似乎是一个很好的数据模板候选项。

基本上,创建一个内容呈现器,并将其内容属性绑定到TreeView的SelectedItem属性。现在,在ContentTemplate属性中为每个类型创建数据模板(使用DataType属性)。

现在,每当您在树视图中选择某些内容时,将选择正确的数据模板并使用正确的数据。

至于单独的调度程序,我不确定,但也不知道什么情况需要它。

有关更多信息,请参见此SO问题:question

示例:

    <ContentPresenter Content="{Binding Path=SelectedItem, ElementName=TreeView}">
        <ContentPresenter.ContentTemplate>
            <DataTemplate DataType="{x:Type Type1}">
                <!-- Bunch of stuff-->
            </DataTemplate>
            <DataTemplate DataType="{x:Type Type2}">
                <!-- Bunch of stuff-->
            </DataTemplate>
        </ContentPresenter.ContentTemplate>
    </ContentPresenter>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接