我无法使用动态填充DataContext
的.TabItems
TabControl
使用下面的代码,我将 my 绑定到ItemsSource
my上TabControl
的一个.ObservableCollection<TabViewModel>
MainViewModel
根据Type
中每个的属性,TabViewModel
选择ItemSource
不同UserControl
的作为 的Content
属性TabItem
。正是在这里开始出错
这些UserControls
需要将其DataContext
设置为MainViewModel
,但是无法访问它,因为动态TabItems
似乎是在不同的可视化树中创建的。
<TabControl x:Name="mainTabControl" ItemsSource="{Binding TabList}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Name}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Type}" Value="Summary" >
<Setter Property="Content">
<Setter.Value>
<views:AnalysisArisingSummaryControl />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Type}" Value="User Defined" >
<Setter Property="Content">
<Setter.Value>
<views:AnalysisUserDefinedControl />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Type}" Value="System Defined" >
<Setter Property="Content">
<Setter.Value>
<views:AnalysisSystemDefinedControl />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
关于如何实现这一点的任何想法。ViewModels
如果我能提供帮助,我真的不想在两者之间引用数据。