我有一个TabControl
,它从ItemsSource构建一个TabItems列表。像这样:
<TabControl ItemsSource="{Binding Path =.}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem" BasedOn="{StaticResource BlueTabItem}" >
<Setter Property="Header" Value="{Binding Path=dataName}"/>
</Style>
</TabControl.ItemContainerStyle>
...
</TableControl>
作为DataTemplate
的一部分,我需要绑定到TabControl所在的XAML窗口中的List:
public partical class SomeWindow : Window {
public List<string> aList {
get { return new List<string>(); }
}
}
如何从我的TabControl的DataTemplate中引用和绑定到aList?
答案 0 :(得分:3)
使用RelativeSource
绑定与AncestorType
定位窗口。
答案 1 :(得分:3)
如果将绑定的RelativeSource设置为其数据上下文使其可以访问aList属性的Element,则可以将Binding的路径设置为aList。所以它看起来像这样(假设你的窗口的DataContext允许它访问aList):
ItemsSource={Binding Path=aList, RelativeSource={RelativeSource AncestorType={x:Type Window}}