如何访问或修改动态创建的按钮

本文关键字:动态 修改 创建 按钮 何访问 访问 | 更新日期: 2023-09-27 18:04:02

我已经创建了8*8的按钮数组来创建扫雷游戏的网格。创建网格后,我需要访问他们(按钮)。我如何访问它们,如更改名称或禁用点击能力或更改颜色。

private void gridDesign()
{
        /***********************************Uniform grid*********************/
        int firstLoop, secondLoop;
        for (firstLoop = 0; firstLoop < 8; firstLoop++)
        {
            for (secondLoop = 0; secondLoop < 8; secondLoop++)
            {
                Button lbl = new Button()
                {
                    Name = "_" + firstLoop.ToString() +"_"+ secondLoop.ToString(),
                    Content = firstLoop.ToString() + " " + secondLoop.ToString(),
                };                   
                lbl.Click += button_Click;
                uniformgridMinesweeper.Children.Add(lbl);
            }
        }
        /********************************************************************/
    }
    private void button_Click(object sender, RoutedEventArgs e)
    {
        Button bbb = e.Source as Button;
        bbb.Background = Brushes.Indigo;
        //how can i access a button named "_5_5"
    }

如何访问或修改动态创建的按钮

使用特定属性(Name)访问Grid的子元素是很简单的:

 var button = uniformgridMinesweeper.Children.OfType<Button>()
    .FirstOrDefault(button => button.Name == "_5_5");

也就是说,您可能想要接受thumbmunkey的建议,并将按钮放在您自己的字典或查找中,以便快速方便地访问。或者更好的是,使用数据绑定与视图模型…