【发布时间】:2013-08-21 11:30:15
【问题描述】:
我在运行时创建了多个Canvas,每个Canvas 都有一个TextBox 作为子级。这些Canvas 是WrapPanel 的子代。我的代码如下:
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 个 TextBox)的 Text。我该怎么做?在数组中没有像这样使用的索引。
[编辑] 如果我在运行时也生成了一个按钮单击事件,每个按钮都会关闭其对应的 Canvas:
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].
标签: c# wpf arrays list uielement