无法获取datacontext的属性

时间:2011-04-17 19:29:11

标签: binding

我在用户控件中有一个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}" 
/>

但每次我的组合框结束时都是空的

1 个答案:

答案 0 :(得分:0)

当您运行应用程序时,您应该在“输出”窗口中查看,该窗口将告诉您出现的绑定错误。所以它会给你一个关于你做错了什么的线索。

看起来你不需要前缀DataContext.子控件的datacontext是默认情况下它的父级的datacontext,除非另有说明。因此,如果Window的DataContext是一些ViewModel,则UserControl及其子控件将具有相同的datacontext。

所以你应该只需要这样做:

<ComboBox Grid.Column="1" Grid.Row="2" ItemsSource="{Binding Companies}" />