【问题标题】:How to Create a View within a View WPF如何在视图 WPF 中创建视图
【发布时间】:2014-03-01 00:05:45
【问题描述】:

我解释了我的问题,因为我对 UI 设计很陌生:

我有一个主视图,它在其左侧显示一个 TreeView。选择一个元素后,我想在同一窗口的右侧显示该项目的描述。此描述的设计取决于项目的性质。 所以我为每个项目类型创建了一个视图,对应于不同的可能设计。

现在,当我单击 TreeView 时,我不知道如何在同一窗口的右侧显示相应的视图。 (我不是在询问是否要捕获事件,只是在另一个视图中显示一个视图,就像我动态绘制一个控件一样)。

有可能吗?如果不是,您会建议哪种方法?

非常感谢。

【问题讨论】:

  • 好的,谢谢。它现在可以解决问题。但是如果我真的需要它是一个视图而不是一个控件,所以它有自己的调度程序线程。有办法吗?

标签: c# wpf


【解决方案1】:

这似乎是数据模板的绝佳候选者。

基本上,创建一个内容展示器并将其内容属性绑定到 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多