這可能是一個騙局,但我找不到任何東西在一個小時左右的搜索和閱讀MSDN。嵌套Itemscontrols數據綁定到同一網格
我正在製作基於2D瓦片的遊戲,並將ItemsControl綁定到Tiles列表(C#類)。這很好。
<ItemsControl ItemsSource="{Binding Tiles}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="{Binding Board.Rows}" Columns="{Binding Board.Columns}"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type local:Tile}">
<Grid x:Name="tileGrid" Background="{Binding TileImage}"/>
</DataTemplate>
</ItemsControl.Resources>
<ItemsControl>
有用於每個圖塊內5x5的網格,因爲我需要能夠在爲每一分不同地點放置單位。每個Tile
包含一個List<Location>
,其中有一個單元,我想要放在該網格上。
<Grid x:Name="tileGrid" Background="{Binding TileImage}">
<ColumnDefinition snipped - there's 5 columns and 5 rows>
<ItemsControl ItemsSource="{Binding Locations}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type sys:Int32}">
<Image Source="unit.bmp"
Grid.Column="{Binding Converter={StaticResource ColumnConverter}}"
Grid.Row="{Binding Converter={StaticResource RowConverter}}"/>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
其中ColumnConverter和RowConverter只是從位置獲取列索引。
問題是我無法綁定到ItemsControl中的tileGrid的Column和Row。有些人建議將網格放置在Locations ItemsControl中,但這不起作用,因爲它需要是外部Tiles ItemsControl的子節點。
我該怎麼辦?
您指的是哪個網格作爲外部網格?統一網格? – 2011-04-08 13:46:59
我在問題中已澄清。我希望將位置集合放置在5x5 tileGrid中,但我無法弄清楚如何去做。 – David 2011-04-08 13:49:57