C# 二维数组wpf的Xaml容器

C# 二维数组wpf的Xaml容器,c#,wpf,xaml,C#,Wpf,Xaml,我正在wpf中制作一个国际象棋应用程序。我目前正在创建UI。这是我第一次使用WPF,我有点困惑如何以简单的方式将2D数组绑定到合适的xaml容器 例如,这是UI的代码: public partial class GameView : Window { private Game game; private const int tableSize = 8; ChessCell[,] chessMatrix = new ChessCell[tableSize, tableSiz

我正在wpf中制作一个国际象棋应用程序。我目前正在创建UI。这是我第一次使用WPF,我有点困惑如何以简单的方式将2D数组绑定到合适的xaml容器

例如,这是UI的代码:

public partial class GameView : Window
{
    private Game game;
    private const int tableSize = 8;
    ChessCell[,] chessMatrix = new ChessCell[tableSize, tableSize];
    public GameView(bool loadGame)
    {
        InitializeComponent();        
        game = new Game(loadGame);
        GenerateEmptyGrid();
    }

    private void GenerateEmptyGrid()
    {   
        for (int i = 0; i < tableSize; i++)
        {               
            for (int j = 0; j < tableSize; j++)
            {
                chessMatrix[i, j] = new ChessCell();
                if ((j + i) % 2 == 0)
                {
                    chessMatrix[i, j]._tileColor = Color.FromRgb(255, 255, 255);
                }
                else
                {
                    chessMatrix[i, j]._tileColor = Color.FromRgb(0, 0, 0);
                }
            }
        }

        chessGrid.ItemsSource = chessMatrix;
    }

    public class ChessCell
    {
        public string _piece { get; set; }
        public Color _tileColor { get; set; }
    }
}

很明显,它只接受一维数组。我看了一些,但我似乎找不到一个xaml容器,你可以很容易地绑定一个二维数组吗?对这种容器有什么建议,或者有没有其他简单的方法来查看二维数组

我要做的是有一个StackPanel(方向是垂直的),面板中的每个项目都包含另一个StackPanel(方向是水平的)。这意味着您的ViewModel必须包含数组数组,而不是矩阵


这意味着您需要在模型和虚拟机之间进行转换(如果您使用WPF,我强烈建议您使用MVVM体系结构模式)。

我要做的是有一个StackPanel(方向垂直),面板中的每个项目都包含另一个StackPanel(方向水平)。这意味着您的ViewModel必须包含数组数组,而不是矩阵

这意味着您需要在模型和VM之间进行转换(如果您使用WPF,我强烈建议您使用MVVM体系结构模式)

  <Grid>
        <DataGrid Name ="chessGrid" SelectionMode="Single" SelectionUnit="Cell">

        </DataGrid>
 </Grid>