Привязка к источнику, а не к DataContext, источники предоставляются в виде ElementName
, RelativeSource
& Source
, поэтому вы можете назватьНапример, просмотрите и используйте ElementName
, чтобы получить его в качестве источника, тогда Path
может быть DataContext.LookupValues
, или как называется ваше свойство в модели (- DataContext of View - ваша модель -) называется.
например,
<Window ...
Name="Window">
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<ComboBox ItemsSource="{Binding ElementName=Window, Path=DataContext.Occupations}"
SelectedItem="{Binding Occupation}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- ... --->
Редактировать: Ваша проблема в том, что вы не передаете нужную вам информацию, рассмотрите проект, которыйвсе еще предоставляет вам доступ не только к SelectedItem некоторого списка, например,
<Window ...
Name="Window">
<ListBox Name="listBox" ItemsSource="{Binding Data}" />
<ContentControl DataContext="{Binding ElementName=listBox, Path=SelectedItem}">
<ComboBox ItemsSource="{Binding ElementName=Window, Path=DataContext.Occupations}"
SelectedItem="{Binding Occupation}" />
</ContentControl>
<!-- ... --->
DataContext
из ContentControl
может быть SelectedItem ListBox, но внутри ComboBox все еще может ссылаться на DataContextокно, которое должно предоставлять необходимую информацию.
Это похоже на мой первый пример, в котором DataContext внутри DataTemplate всегда является элементом коллекции, но вы можете получить доступ к внешним DataContexts, используя источники в ваших привязках.