第一次使用来自WinForm的WPF并且调整得相当好但是我很难接受我常用的一个程序。这是我在WinForm中使用的代码来自动填充标记为这样的控件; label1,label2,label3等。
Dim lbl As Label
Dim matcheslbl() As Control
For i As Integer = 1 To 24
matcheslbl = Me.Controls.Find("label" & i, True)
lbl = DirectCast(matcheslbl(0), Label)
If matcheslbl.Length > 0 AndAlso TypeOf matcheslbl(0) Is Label Then
lbl.Text = "Data Here"
End If
Next
如何在WPF中使用相同的过程?我在表单中的层次结构布局来自WrapPanel> StackPanel>画布>对照
根据我的知识修改代码后,我被挂在Me.Controls方面,在广泛搜索之后无法找到任何内容,或者我没有完全理解它。这是我修改过的代码......
For i As Integer = 1 To 24
Dim lbl As Label
Dim matcheslbl() As Control
matcheslbl = Me.WrapPanel.FindName("lbl" & i)
lbl = DirectCast(matcheslbl(0), Label)
If matcheslbl.Length > 0 AndAlso TypeOf matcheslbl(0) Is Label Then
lbl.Content = "Data Here"
End If
Next
这就挂了......
matcheslbl = Me.WrapPanel.FindName("lbl" & i)
有关如何在WPF中完成我以前的过程的任何帮助,并详细说明如何实现它,因为我是WPF的新手
答案 0 :(得分:1)
如果你看Me.WrapPanel.FindName
上的intellisense,你会发现它不会返回一个数组,只返回一个对象。我使用以下
For i As Integer = 1 To 24
Dim o As Object = wpMain.FindName("Label" + i.ToString())
DirectCast(o, Label).Content = "Data Here"
Next