WPF:更改嵌套在堆栈面板中的扩展器内的所有文本框的值

时间:2012-05-30 21:01:54

标签: wpf vb.net textbox stackpanel expander

这是我第一次使用WPF。这有点像噩梦,但我已经做了足够多的项目,我现在不想再用表单应用程序重新开始。

我的问题是:我在扩展器中有50个文本框,而扩展器又位于堆叠面板内。我需要将每个文本框的值存储在一个数组中。在表单中,我可能会这样做(顺便说一下我使用的是vb.net):

Dim i As Integer
Dim values() as string
For i = 0 To 49
values(i) = form1.Controls("TextBox" & i).text
Next i

(假设我的文本框被命名为Textbox1,Textbox2,Textbox3等。)

如何在WPF中执行此操作?我尝试过使用树木(我认为它们被称为?),但每次都失败了,现在放弃了。

哦,我也忘了提到扩展器中还有其他控件(与文本框配对的标签)。

1 个答案:

答案 0 :(得分:0)

这适用于编码恐怖类别但是如果你想继续使用它,那么在FrameworkElement上有一个名为FindName(http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname.aspx)的方法可以满足你的需要。它以递归方式搜索它的子元素,只需命名扩展器并在代码隐藏中使用FindName来获取所有文本框。