В настоящее время я делаю решатель судоку в C# WPF. Я сделал многомерный массив размером 9x9. Каждый элемент этого массива является свойством, которое привязано к текстовому полю в моем представлении WPF.
Поэтому, прежде чем я смогу назначить его элементы свойству, я должен его инициализировать, потому что в противном случае я получил бы исключение нулевой ссылки. Мой код работает нормально, но после инициализации SudokuTable содержит только нули. Это, конечно, отлично подходит для вычислений, но я бы хотел, чтобы текстовые поля ничего не содержали.
Я новичок в C# и WPF, поэтому надеюсь, что вы можете мне помочь. Ниже вы найдете мою MainViewModel и одно из текстовых полей. Учтите, что привязка работает. Это просто 0 в TextBox, который мне не нужен.
MainViewModel:
public class MainViewModel : ViewModelBase
{
public SudokuGrid SGrid { get; set; }
public MainViewModel()
{
SGrid = new SudokuGrid();
InitializeSudokuTable();
}
private void InitializeSudokuTable()
{
SudokuTable = new int[9, 9];
}
public int[,] SudokuTable
{
get { return SGrid.SudokuTable; }
set
{
if (SGrid.SudokuTable != value)
{
SGrid.SudokuTable = value;
OnPropertyChanged("Grid");
}
}
}
#region Cells
public int Cell00
{
get { return SudokuTable[0, 0]; }
set
{
if (SudokuTable[0, 0] != value)
{
SudokuTable[0, 0] = value;
}
}
}
}
TextBox Пример:
<TextBox MaxLength="1" Style="{StaticResource GridTextBox}" Text="{Binding Path=Cell00}"/>