我希望这会非常明显。我有一个可观察集合中的视图模型列表,我已经连接到gridview。视图很复杂,有动画等等,所以我把它包装在用户控件中。
我的xaml看起来像这样: -
<GridView Grid.Row="1" ItemsSource="{Binding Tiles, Mode=OneWay}">
<GridView.ItemTemplate>
<DataTemplate>
<local:Tile DataContext="{Binding}" />
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
但是tile数据上下文始终为null。
是否有一种简单的方法可以使此代码正常工作?
由于
答案 0 :(得分:0)
尝试删除DataContext="{Binding}"
。默认情况下,商品DataContext
是ItemsSource
集合中的商品。
答案 1 :(得分:0)
你怎么知道DataContext
总是空的?例如,如果要在Tile
的构造函数中检查它,那么它应该始终为null,因为绑定过程直到实例化控件之后才会发生。
DataContext="{Binding}"
基本上没有意义,比如在代码中为自己分配一个局部变量。它没有做任何有用的事情,但也不应该伤害任何东西。如果您的GridView
内的商品显示在DataContext
内,并且Tile
内的DataContext
内没有混乱{{1}},那么其{{1}}将是该商品的数据。