C# сетка Кнопка дети тест

Я действительно Новичок в c# (1-2 дней…). Я все еще не понимаю, как получить доступ к сетке и проверить, установлены ли кнопки внутри строк и столбцов specifics в true для свойства «isEnabled».
Я хочу проверить, если aroud синяя кнопка, красный включены или нет.

Я не знаю, как написать тест, чтобы получить доступ к @ The button at [ row ][ col ] (или [ i][ j ] в этом случае…) и его собственность «isEnabled».
Это сетка 8*8 с кнопками. Большое спасибо за помощь.

public bool isButtonAvaible(Button button)
    {
        row = (int)button.GetValue(Grid.RowProperty);
        col = (int)button.GetValue(Grid.ColumnProperty);

        foreach (Button b in gridBoard.Children)     //not sure if correct/needed

        {
            for (int i = row - 1; i <= row + 1; i++)  
            {
                for(int j = col - 1; j <= col +1; j++)
                {
                    if(gridBoard.Children ??? (Button.IsEnabledProperty ==true)
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }

концепция теста на синей кнопке

2 ответа

  1. Если вы хотите запустить тест, чтобы увидеть, включена ли кнопка, как вы отформатировали свою функцию, это так же просто, как

    public bool isButtonAvailable(Button btn)
    {
        return btn.IsEnabled;
    }
    

    IsEnabled является логическим свойством, поэтому если вы собираетесь передать кнопку в качестве аргумента этой функции, вы просто хотите вернуть true/false, включена ли кнопка, которую вы передали, или нет. Все остальное, что вы пытались-делать слишком много.

  2. private static Button GetChildren(Grid grid, int row, int column)
        {
            foreach (Button child in grid.Children)
            {
                if (Grid.GetRow(child) == row
                      &&
                   Grid.GetColumn(child) == column)
                {
                    return child;
                }
            }
            return null;
        }
    

    Но он также может быть более общим : public UIElement GetChildren(etc
    ...){}