我解释了我的问题,因为我对UI设计很陌生:
我有一个主视图,它在其左侧部分显示一个TreeView。选择元素时,我想在同一窗口的右侧显示项目的描述。本说明书的设计取决于项目的性质。 所以我创建了一个对应于不同可能设计的每个项目类型的视图。
现在当我点击TreeView时,我不知道如何在同一个窗口的右侧显示相应的视图。 (我不是要求捕获事件,只是在另一个视图中显示视图,就像我动态绘制控件一样)。
有可能吗?如果不是,你会建议采用什么样的方法?
非常感谢。
答案 0 :(得分:2)
这似乎是数据模板的一个很好的候选者。
基本上,创建一个内容展示器并将其content属性绑定到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>