如何将可观察集合中的项放入网格中
本文关键字:网格 集合 观察 | 更新日期: 2023-09-27 18:36:10
当我为Windows Phone 8编写应用程序时,我遇到了一个问题。在视图中我有模型
public ObservableCollection<Ball> ListOfBalls { get; set;}
每个球都有其行号和列号。
在视图中,我指定了要放置网格(10 行 x 10 列)的Grid.Row
,然后我想在每个网格单元格中放置一个来自 ListOfBalls 的球。
所以,这就是View
:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="GamePlayGrid"
Grid.Row="1"
Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- I've tried to add ItemsControl here -->
</Grid>
</Grid>
我尝试定义 Grid(10 行 x 10 列),然后在此网格范围内,我尝试使用 DataTemplate
添加ItemsControl
,但我不确定它是否正确,因为在执行过程中我得到了一些未经处理的异常......我该如何解决这个问题?
已编辑,从您的代码中, 添加的图像
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ItemsControl ItemsSource="{Binding ListOfBalls}"/>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Height="30" Width="30" Source="{Binding Path=BallImageName}"/>
<TextBlock Text="{Binding BallName}"/>
<StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
球图像名称是球图像的属性,请添加定位文件的来源。(例如:"图像/我的图像.png")