我有一个用户控件,ItemTemplate
属性内有一个 ListView 有一个 ComboBox 我需要为这个 ComboBox 使用两个数据上下文
- 来自 UserControl 的 ItemsSource DataContext
- ListViewItem 中的 SelectedItem DataContext
我有一个用户控件,ItemTemplate
属性内有一个 ListView 有一个 ComboBox 我需要为这个 ComboBox 使用两个数据上下文
您可以RelativeSource
在绑定中使用来遍历可视树以找到DataContext for UserControl
.
而对于ListViewItem
,您不需要 RelativeSource ,因为Combobox will inherit the DataContext of its parent which is ListViewItem
它本身。你的结构看起来有点像这样 -
<UserControl>
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.CollectionSource,
RelativeSource={RelativeSource FindAncestor,
AncestorType=UserControl}}"
SelectedItem="{Binding YourItemHere}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</UserControl>