Wpf 从TabControl获取ContentTemplate的实例化UIElement

Wpf 从TabControl获取ContentTemplate的实例化UIElement,wpf,mvvm,datatemplate,tabcontrol,contentpresenter,Wpf,Mvvm,Datatemplate,Tabcontrol,Contentpresenter,我有一个TabControl,其中ContentTemplate由包含ContentPresenter的DataTemplate定义。映射UIElement类由特定ViewModel类型的DataTemplate定义。它的工作原理如下: <UserControl.Resources> <DataTemplate DataType="{x:Type ViewModels:DiagramVM}"> <Controls:Diagra

我有一个
TabControl
,其中
ContentTemplate
由包含
ContentPresenter
DataTemplate
定义。映射
UIElement
类由特定ViewModel类型的
DataTemplate
定义。它的工作原理如下:

<UserControl.Resources>
        <DataTemplate DataType="{x:Type ViewModels:DiagramVM}">
            <Controls:Diagram DataContext="{Binding}" x:Name="diagram"/>
        </DataTemplate>
</UserControl.Resources>

<TabControl ItemsSource="{Binding Path=Tabs, Mode=TwoWay}" SelectedIndex="{Binding Path=SelectedTabIndex}"
                            x:Name="AnalysisTabCtrl" Template="{DynamicResource ScrollableTabControlTemplate}">
    <TabControl.ItemTemplate>
                    <DataTemplate>
                        <Label Content="{Binding Path=Header}"/>
                    </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
                    <DataTemplate>
                        <ContentPresenter Content="{Binding Path=ViewModel}"/>
                    </DataTemplate>
    </TabControl.ContentTemplate>
 </TabControl>

我的问题是我需要实例化的UIElements的实例。在本例中,关系图是一个实例。如何获取它们?

您可以使用从
TabControl
中获取一个
TabItem
,然后可以在上搜索命名的实例化控件。(此处您可能需要命名内容演示者,然后再次在其
内容模板中搜索)

我不建议这样做,如果没有它您就无法管理,那么您可能没有将所有相关属性绑定到您的项目