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
,然后可以在上搜索命名的实例化控件。(此处您可能需要命名内容演示者,然后再次在其内容模板中搜索)
我不建议这样做,如果没有它您就无法管理,那么您可能没有将所有相关属性绑定到您的项目