如果我有以下代码:
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在外面,因此可以从任何函数更改。
答案 0 :(得分:1)
让它静态:
public static Button[] ButtonArray = new ..
并使用MainWindow.ButtonArray
来访问它。
值得指出的是,通过这样做,它在您的MainWindow 的每个实例中都是共享。
修改强>
只是要指出 - 而不是说“外部”更常见的是使用范围的定义,简单地说 - 如果你可以从某个地方B访问A,那么A在B中范围。
此外 - 请在此处阅读有关静态的更多信息:Static and instance fields
如果要编辑专门创建的按钮,可以将该按钮保留在指定字段中,该字段同时包含创建代码的范围和更改代码的范围:
var myButton = new Button(){Content="Content"};
_buttonarray[b]=myButton;
SomethingInCommon.SpecificButton = myButton;
并在其他地方访问SomethingInCommon
。
保持SpecificButton
值,直到您不再需要它为止。
答案 1 :(得分:0)
您正在使用您拥有的代码编辑一个按钮,它可能不是您期望的那个按钮,因为b的索引可能已被迭代。只需访问正确的索引,可能使用查找和内容谓词来确保您正在编辑右键。