1

我有一个用户控件,ItemTemplate属性内有一个 ListView 有一个 ComboBox 我需要为这个 ComboBox 使用两个数据上下文

  1. 来自 UserControl 的 ItemsSource DataContext
  2. ListViewItem 中的 SelectedItem DataContext

如何实现这一目标?

4

1 回答 1

2

您可以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>
于 2012-11-24T17:29:32.140 回答