对于学校,我必须创建一个我选择的桌面游戏。我选择了一个简单的棋盘游戏,你必须以一种方式组合不同颜色的棋盘,以获得大部分积分。你可以有2到4名球员。
到目前为止,我使用MVVM和PRISM构建了一个WPF应用程序。用户按下按钮来决定播放器的数量,并根据我想要在XAML中动态创建网格(因为MVVM而没有代码隐藏),大小为6x6,7x7和8x8。在每个单元格中,需要一个可以容纳视觉块的控件(我不知道哪一个)。
我的想法是创建该网格,在每个单元格中放置一个ListBox,只允许ListBox的一个项目,并在其上拖放一个矩形。
对于动态创建的网格,我读到了使用ItemsControl来构建它。这是一个简短的代码示例,它不起作用:
<ItemsControl Grid.Row="1" Grid.Column="1" ItemsSource="{Binding Path=GameBoard}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True" Row="{Binding Path=Rows}" Column="{Binding Path=Columns}">
<Grid.RowDefinitions>
<RowDefinition MinHeight="20"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="20"/>
</Grid.ColumnDefinitions>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
在里面我可以放置一个ListBox来保存我正在谈论的那个块。根据我的理解,我需要有一个绑定到每个单元格/ ListBox的属性来实际保存它并在代码中使用它。
互联网上有很多东西,但是我无法将它连接在一起以使其正常工作。你有意向我开始吗?