单个xaml中具有相同绑定的多个控件

时间:2015-08-17 12:39:06

标签: c# wpf xaml treeview

我有一个带有TabControl的xaml,带有两个标签。每个TabItems都有treeview,其代码完全相同。绑定,VM等完全相同。它们使用不同的数据,这些数据在我的模型中根据属性处理。所以我的VM和View不需要担心它。

有什么方法可以写我的treeviewHierarchicalDataTemplate一次,每个标签引用而不是在同一个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>

但接下来如何编写treeviewHierarchicalDataTemplate,然后引用它们?

1 个答案:

答案 0 :(得分:1)

定义包含DataTemplate版面的TreeView,然后使用ContentPresenterContentControl来展示它:

<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>