我有2个ObservableCollection列表,我们可以调用A和B,然后我有一个GridView,我想绑定到列表A和一个ComboBox INSIDE,GridView,我想绑定到列表B. 我已经通过代码设置GridView的ItemsSource属性:gridview.ItemsSource = A(并且它可以工作!)。关于ComboBox它的实例它不是代码可用的,我想因为它的定义它被包含在DataTemplate标签之间;所以我想知道如何通过代码或XAML将组合绑定到列表B.
遵循XAML代码:
<ListView Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" Margin="0,0,0,0" Name="lstReplacements" VerticalAlignment="Stretch">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Wrong text" DisplayMemberBinding="{Binding Word}"/>
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Replacement" Width="60" DisplayMemberBinding="{Binding Replacement}" />
<GridViewColumn HeaderContainerStyle="{StaticResource MyHeaderStyle}" Header="Type" Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{??????}" DisplayMemberPath="??????" Grid.Row="1" Grid.Column="0" Name="cmbCorrectionType" Width="75" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
提前感谢您的支持! 克里斯
答案 0 :(得分:0)
我假设此控件位于UserControl中,并且 将UserControl的DataContext设置为CollectionA和CollectionB所在的集合所在的类实例 。
然后,您可以使用RelativeSource
绑定:
<ComboBox ItemsSource="{Binding DataContext.CollectionB,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=UserControl}}"/>
此外,您可以将ListView的DataContext设置为类实例,您只需将AncestorType更改为ListView,而不是上述绑定中的UserControl。