Привязать DataTemplate к «внешнему» свойству - PullRequest
2 голосов
/ 28 марта 2012

У меня есть TabControl, который создает список TabItems из его ItemsSource.Примерно так:

<TabControl ItemsSource="{Binding Path =.}">
    <TabControl.ItemContainerStyle>
            <Style TargetType="TabItem" BasedOn="{StaticResource BlueTabItem}" >
                <Setter Property="Header" Value="{Binding Path=dataName}"/>
            </Style>
    </TabControl.ItemContainerStyle>
    ...
</TableControl>

Как часть DataTemplate, мне нужно привязать список, найденный в моем окне XAML, где находится TabControl:

public partical class SomeWindow : Window {
     public List<string> aList {
         get { return new List<string>(); }
     }
}

Как я могу ссылатьсяи связать с aList из DataTemplate моего TabControl?

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Если вы установите RelativeSource привязки для элемента, чей контекст данных дает ему доступ к свойству aList, тогда вы можете установить путь привязки в aList.Так что это будет выглядеть примерно так (при условии, что DataContext вашего окна дает ему доступ к aList):

ItemsSource={Binding Path=aList, RelativeSource={RelativeSource AncestorType={x:Type Window}}
3 голосов
/ 28 марта 2012

Используйте RelativeSource привязку с AncestorType для окна.

...