数据绑定ItemsControl

时间:2018-08-05 14:30:49

标签: xaml data-binding uwp

我正在尝试使用UWP编写纸牌游戏,但又遇到了另一个绊脚石。 在我的ViewModel中,我有一个名为PlayersList的属性。 PlayersList包含XPosition和YPosition属性,它们应作为每个玩家对象的Canvas上的绝对位置。我的用户界面中包含以下代码:

<Grid>
    <ItemsControl ItemsSource="{x:Bind PlayerList}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Canvas Canvas.Top="{Binding YPosition}" 
                        Canvas.Left="{Binding XPosition}">
                </Canvas>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

问题是未应用ItemsControl.ItemTemplate。似乎PlayerList中的所有项目都在Canvas位置0,0上呈现,一个在另一个之上。如果我注释掉ItemsControl.ItemsPanel代码块,则列表中的所有项目都将呈现为好像在垂直StackPanel中一样。 我试图将列表更改为一个Observable Collection,甚至只是一个具有相同结果的对象。我什至可以在没有渲染的ItemTemplate上添加一个测试TextBlock,这向我证明了模板没有被应用。 这项工作不应该按书面规定进行吗?我在这里想念什么?

感谢您的帮助。

0 个答案:

没有答案