0

Windows フォームを使用して数独ゲームを作成しました。たとえば、データグリッドは非常に扱いやすかったです。

dataGridView1[2,3]=5;

現在、wpf ではデータグリッドをこのように使用することはできず、グリッドをテストして埋める最も簡単な方法を見つける必要があります。たとえば、次のようなコードがありました。

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)....

                        }
                    }
                }
            }

助けはありますか?

4

1 に答える 1

1

私は dataGridView の内容を読みません。代わりに、数独の値を表すデータ構造にコントロール (datagridview など) をバインドします。

これにより、データ構造を簡単に確認できます(メソッド、プロパティ、およびイベントを追加することもできます)

各セルにグリッド (9x9 セル) とテキストブロックを作成し、各セルのテキスト プロパティを 2 次元配列の要素にバインドするだけです。

<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>

コードでグリッドの 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]

于 2012-08-03T10:13:24.503 に答える