我解释一下我的问题,因为我对 UI 设计还很陌生:
我有一个主视图,它在其左侧显示一个 TreeView。选择一个元素后,我想在同一窗口的右侧显示该项目的描述。此描述的设计取决于项目的性质。 因此,我针对不同的可能设计为每个项目类型创建了一个 View 。
现在,当我单击 TreeView 时,我不知道如何在同一窗口的右侧显示相应的 View 。 (我不是在询问捕捉事件,只是在另一个 View 中显示一个 View ,就像我动态绘制一个控件一样)。
这可能吗?如果不是,您会建议采用哪种方法?
非常感谢。
最佳答案
这似乎是数据模板的理想选择。
基本上,创建一个内容展示器并将其内容属性绑定(bind)到 TreeView 的 SelectedItem 属性。现在,在 ContentTemplate 属性中为每个类型创建数据模板(使用 DataType 属性)。
现在,只要您在 TreeView 中选择某些内容,就会使用正确的数据选择正确的数据模板。
就单独的调度程序而言,我不确定,但我也不确定哪种情况需要一个。
可以在此 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>
关于c# - 如何在 View WPF 中创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108167/