1

我希望这真的很明显。我在已连接到 gridview 的可观察集合中有一个视图模型列表。该视图很复杂,带有动画等,因此我将其包装在用户控件中。

我的 xml 看起来像这样:-

<GridView Grid.Row="1" ItemsSource="{Binding Tiles, Mode=OneWay}">                              
    <GridView.ItemTemplate>
        <DataTemplate>
                <local:Tile DataContext="{Binding}" />
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

但瓦片数据上下文始终为空。

有没有一种简单的方法可以让这段代码工作?

谢谢

4

2 回答 2

0

尝试删除DataContext="{Binding}". 默认情况下,项目DataContextItemsSource集合中的项目。

于 2013-02-11T20:32:38.513 回答
0

你怎么知道DataContext总是空的?例如,如果您要在 的构造函数中检查它Tile,它应该始终为 null,因为绑定过程直到控件被实例化后才会发生。

DataContext="{Binding}"本质上是没有意义的,就像在代码中给自己分配一个局部变量一样。它没有做任何有用的事情,但也不应该伤害任何东西。如果您的项目出现在您的内部GridView并且没有弄乱DataContext内部的任何地方,Tile那么DataContext它将是该项目的数据。

于 2013-02-12T02:26:39.597 回答