C# 二维数组wpf的Xaml容器
我正在wpf中制作一个国际象棋应用程序。我目前正在创建UI。这是我第一次使用WPF,我有点困惑如何以简单的方式将2D数组绑定到合适的xaml容器 例如,这是UI的代码: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
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>