我在運行時創建了多個Canvas
,並且每個Canvas
都有一個TextBox
作爲Children。這些Canvas
是WrapPanel
的子女。我的代碼如下:訪問列表中的UIElement.Properties <UIElement>
List<Canvas> cvList = new List<Canvas>();
WrapPanel wp = new WrapPanel();
// function (e.g. a Click event) to add a Canvas with a TextBox
Canvas cv = new Canvas();
TextBox tb = new TextBox();
cv.Children.Add(tb);
cvList.Add(cv);
wp.Children.Add(cv);
如果後處理功能時的10倍和10個Canvas是創造,我需要改變一個特定的UIElement的文本(例如第5文本框)。我會怎麼做?在數組中沒有像這樣的索引。
[編輯] 如果我有一個按鈕點擊事件也是在運行時產生的,每個按鈕將關閉其相應的帆布:
List<Button> btnList = new List<Button>();
// function to add Canvas with a Button
Button btn = new Button();
btn.Content = "Destroy";
btn.Click += destroy_Click;
btnList.Add(btn);
cv.Children.Add(btn);
// Destroy click event
private void destroy_Click(object sender, RoutedEventArgs e)
{
if (sender == ????)
{}
}
我應該怎麼比較我的發送者?
「沒有索引的陣列中使用的那樣的。」就在這裏。 List有一個索引*,就像數組:'cvList [4]'。那麼UIElementCollection(Canvas.Children就是這樣):'cvList [4] .Children [0]'。 – itowlson 2011-04-04 03:25:47