我使用Windows窗体制作了一个数独游戏,数据网格很容易处理,例如
dataGridView1[2,3]=5;
现在在wpf中,datagrid不能像这样使用,我需要找到最简单的方法来测试和填充网格,例如我的代码如下:
for (i = 0; i < 9; i++)
{
for (j = 0; j < 8; j++)
{
for (k = j + 1; k < 9; k++)
{
if (dataGridView1[i, k].Value != null)....
}
}
}
}
任何帮助?
答案 0 :(得分:1)
我不会阅读dataGridView的内容。相反,我会将一个控件(例如datagridview)绑定到一个表示数独值的数据结构。
这将允许您简单地检查数据结构(甚至向其添加方法,属性和事件)
在每个单元格中创建一个Grid(9x9单元格)和一个文本块,并将每个单元格的text属性绑定到二维数组的元素:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
...
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
...
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding Path=Cells[0][0]}"/>
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=Cells[1][0]}"/>
<TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding Path=Cells[2][0]}"/>
...
</Grid>
并在代码中设置Grid的DataContext:
class Sudoku
{
public int[,] Cells = new int[9,9];
...
}
private Sudoku _sudoku;
MainWindow_Loaded(...)
{
_sudoku = new Sudoku();
grid.DataContext= _sudoku;
}
现在您只需设置并检查_sudoku.Cells[2,3]