C#Grid按钮儿童测试

时间:2016-12-29 22:56:14

标签: c# loops grid row

我真的很喜欢c#(1-2天......)。我仍然没有得到如何访问网格并测试特定行和按钮内的按钮。对于属性“isEnabled”,列设置为true。 我想测试是否有蓝色按钮,红色按钮是否启用。

我不知道怎么写测试,在[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;
    }

concept of the test on blue button

2 个答案:

答案 0 :(得分:0)

如果您想要运行测试以查看是否启用了按钮,就像您已经格式化了您的功能一样,它就像

一样简单
public bool isButtonAvailable(Button btn)
{
    return btn.IsEnabled;
}

IsEnabled是一个布尔属性,所以如果您要将按钮作为参数传递给此函数,您只需要返回您传递的按钮是启用还是启用的真/假或不。你尝试的其他一切 - 做得太多了。

答案 1 :(得分:0)

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