我有一个带有TabControl
的xaml,带有两个标签。每个TabItems
都有treeview
,其代码完全相同。绑定,VM等完全相同。它们使用不同的数据,这些数据在我的模型中根据属性处理。所以我的VM和View不需要担心它。
有什么方法可以写我的treeview
和HierarchicalDataTemplate
一次,每个标签引用而不是在同一个xaml中复制代码?
像
这样的东西<TabControl>
<TabItem Header="Tab1">
<Grid>
<!-- Refer to the tree view here -->
</Grid>
</TabItem>
<TabItem Header="Tab2">
<Grid>
<!-- Refer to the tree view here -->
</Grid>
</TabItem>
</TabControl>
但接下来如何编写treeview
和HierarchicalDataTemplate
,然后引用它们?
答案 0 :(得分:1)
定义包含DataTemplate
版面的TreeView
,然后使用ContentPresenter
或ContentControl
来展示它:
<Window.Resources>
<DataTemplate x:Key="TreeTemplate">
<Your TreeViewLayout ...>
</DataTemplate>
</Window.Resources>
...
<TabControl>
<TabItem Header="Tab1">
<ContentControl Content="{Binding}" ContentTemplate="{StaticResource TreeTemplate}" />
</TabItem>
<TabItem Header="Tab2">
<ContentControl Content="{Binding}" ContentTemplate="{StaticResource TreeTemplate}" />
</TabItem>
</TabControl>