使用动态创建的网格和内部控件进行桌面游戏以使用拖放

时间:2017-01-06 09:07:20

标签: c# wpf xaml mvvm prism

对于学校,我必须创建一个我选择的桌面游戏。我选择了一个简单的棋盘游戏,你必须以一种方式组合不同颜色的棋盘,以获得大部分积分。你可以有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的属性来实际保存它并在代码中使用它。

互联网上有很多东西,但是我无法将它连接在一起以使其正常工作。你有意向我开始吗?

0 个答案:

没有答案