2013-07-07 58 views
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在外面,所以它可以從任何函數改變。

回答

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值,直到您不再需要它爲止。

+0

謝謝。你的回答幫助我解決了我的問題。 –

0

你正在編輯一個帶有你所擁有的代碼的按鈕,它只是它可能不是你所期待的那個,因爲b的索引可能已被迭代。只需訪問正確的索引,可能通過使用Find和一個關於Content的謂詞來確保您正在編輯正確的按鈕。

+0

你能解釋我怎樣才能使用查找功能來做到這一點? –

相關問題