我在用户控件中有一个Grid,它位于一个有2个集合的Window中。
我正在寻找一种从我的网格中获取Collection 2的方法。
我已经尝试了几件事:
ItemsSource="{Binding DataContext.Bicycles, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type CollectionContainer}}}" />
和
<ComboBox Grid.Column="1" Grid.Row="2" ItemsSource="{Binding RelativeSource=
{RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1},
Path=DataContext.Bicycles}" DisplayMemberPath="Height" />
和
<ComboBox Grid.Column="1" Grid.Row="2" ItemsSource="{Binding RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.Companies}"
/>
但每次我的组合框结束时都是空的
答案 0 :(得分:0)
当您运行应用程序时,您应该在“输出”窗口中查看,该窗口将告诉您出现的绑定错误。所以它会给你一个关于你做错了什么的线索。
看起来你不需要前缀DataContext.
子控件的datacontext是默认情况下它的父级的datacontext,除非另有说明。因此,如果Window的DataContext是一些ViewModel,则UserControl及其子控件将具有相同的datacontext。
所以你应该只需要这样做:
<ComboBox Grid.Column="1" Grid.Row="2" ItemsSource="{Binding Companies}" />