我在运行时创建了多个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