将DataTemplate绑定到';外部';所有物
本文关键字:外部 所有物 DataTemplate 绑定 | 更新日期: 2023-09-27 18:29:08
我有一个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窗口中的列表:
public partical class SomeWindow : Window {
public List<string> aList {
get { return new List<string>(); }
}
}
如何从TabControl的DataTemplate中引用和绑定aList?
如果将绑定的RelativeSource设置为一个元素,该元素的数据上下文使其可以访问aList属性,则可以将绑定的Path设置为aList。所以它看起来是这样的(假设你的窗口的DataContext允许它访问aList):
ItemsSource={Binding Path=aList, RelativeSource={RelativeSource AncestorType={x:Type Window}}
使用RelativeSource
绑定和以窗口为目标的AncestorType
。