1

如果我有以下代码:

Button[] _buttonarray = new Button[40]; // it is outside any function (situated in the public partial class MainWindow : Window)

在一个名为的函数中创建了一个新按钮

private void createbutton()
{

    _buttonarray[b]=new Button();

    _buttonarray[b].Content = "Content";

    ...
}

如何_buttonarray[b]从另一个功能编辑内容,例如,

private void editbutton()
{
    _buttonarray[b].Content = "New Content";
}

注意:变量 b 在外部,因此可以从任何函数中更改。

4

2 回答 2

1

使其成为静态:

public static Button[] ButtonArray = new ..

并用于MainWindow.ButtonArray访问它。

值得指出的是,通过这样做,它会在 MainWindow 的每个实例中共享

编辑:

只是要指出-而不是说“外部”,更常见的是使用Scope的定义,简单地说-如果您可以从某处 B 访问某物 A,那么 A 在 B 的 Scope 中。

另外 - 在此处阅读有关静态的更多信息:静态和实例字段

如果要编辑专门创建的按钮,可以将该按钮保留在指定字段中,该字段既位于创建代码的范围内,也位于更改代码的范围内:

var myButton = new Button(){Content="Content"};
_buttonarray[b]=myButton;

SomethingInCommon.SpecificButton = myButton;

以及可以访问的其他地方的访问权限SomethingInCommon

保持SpecificButton价值,直到您不再需要它。

于 2013-07-07T12:34:07.387 回答
0

您正在使用您拥有的代码编辑一个按钮,只是它可能不是您所期望的,因为 b 的索引可能已被迭代。只需访问正确的索引,可能通过使用 Find 和 Content 上的谓词来确保您正在编辑正确的按钮。

于 2013-07-07T12:31:06.623 回答