Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问列表中的UIElement.Properties<;UIElement>;_C#_Wpf_Arrays_List_Uielement - Fatal编程技术网

C# 访问列表中的UIElement.Properties<;UIElement>;

C# 访问列表中的UIElement.Properties<;UIElement>;,c#,wpf,arrays,list,uielement,C#,Wpf,Arrays,List,Uielement,我在运行时创建了多个画布,每个画布都有一个文本框。这些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 T

我在运行时创建了多个
画布
,每个
画布
都有一个
文本框
。这些
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);
List cvList=newlist();
WrapPanel wp=新WrapPanel();
//功能(例如单击事件)添加带有文本框的画布
画布cv=新画布();
TextBox tb=新的TextBox();
cv.儿童添加(tb);
cvList.Add(cv);
wp.Children.Add(cv);

如果在函数处理10次并创建10个画布之后,我需要更改一个特定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 btnList=new List();
//函数使用按钮添加画布
按钮btn=新按钮();
btn.Content=“销毁”;
点击+=销毁\点击;
btnList.Add(btn);
添加儿童简历(btn);
//销毁点击事件
私有void destroy_Click(对象发送方,路由目标)
{
如果(发送方==??)
{}
}

我应该将我的发件人与什么进行比较?

正如我在您的(您可能应该已经更新了)中试图解释的那样,您不需要单独的列表,只需直接使用
WrapPanel
访问其子级-您知道您只在
WrapPanel
中添加了
画布
元素,以便可以适当地强制转换:

TextBox textbox = (wp.Children[5] as Canvas).Children[0] as TextBox;
textbox.Text = "Hello";

“在数组中没有这样的索引。”是的,有。列表的索引与数组完全相同:
cvList[4]
。UIElementCollection(Canvas.Children就是这样)也是如此:
cvList[4].Children[0]
。谢谢,我觉得把这个问题分开比较合适。我还编辑了我的问题,以解释我在列表中的UIElement的单击事件中遇到的问题。