我的头衔可能很奇怪。我不知道该怎么说。这是重点。我有一个arraylist,它可以保存一些动态数据。它可以是10,20或30个数据或数据库中存在的任何数据。在我的页面上,我在2列中有42个文本块。这意味着我有一列“我的号码”和一列“我的名字”。 42个文本块是静态的。但是arraylist数据是动态的。如何循环遍历arraylist并用arraylist中的总数据填充文本块?我只是做了一些代码,但我不能想到逻辑。
Private Sub FillOthers()
Dim name1, name2 As TextBlock
Try
For i = 1 To (arrOthers.Count)
name1 = "tbothers_no" & i
name2 = "tbothers_name" & i
name1.Text = arrOthers.Item(i).dirno
name2.Text = arrOthers.Item(i).dirname
Next
Catch ex As Exception
strErrMsg = "Error at fill others textblock. " & vbCrLf & ex.Message
Application.LogEvents(strErrMsg, EventLogEntryType.Error)
End Try
End Sub
请参阅name1和name2。我希望数据通过循环计数填充文本块。现在我得到错误,字符串值无法转换为textblock。还有其他办法吗?
答案 0 :(得分:0)
我想你想要FrameworkElement::FindName()。这样的事情应该有效:
Dim name1, name2 As TextBlock
For i = 1 to arrOthers.Count
name1 = TryCast(FindName("tbothers_no" & i), TextBlock)
If name1 IsNot Nothing Then name1.Text = arrOthers.Item(i).dirno
name2 = TryCast(FindName("tbothers_name" & i), TextBlock)
If name2 IsNot Nothing Then name2.Text = arrOthers.Item(i).dirname
Next
答案 1 :(得分:0)
我的发现,测试和它的工作!
Dim tb1(9) As TextBlock
Dim tb2(9) As TextBlock
tb1(0) = tbothers_dir1
tb1(1) = tbothers_dir2
tb1(2) = tbothers_dir3
tb1(3) = tbothers_dir4
tb1(4) = tbothers_dir5
tb1(5) = tbothers_dir6
tb1(6) = tbothers_dir7
tb1(7) = tbothers_dir8
tb1(8) = tbothers_dir9
tb1(9) = tbothers_dir10
tb2(0) = tbothers_name1
tb2(1) = tbothers_name2
tb2(2) = tbothers_name3
tb2(3) = tbothers_name4
tb2(4) = tbothers_name5
tb2(5) = tbothers_name6
tb2(6) = tbothers_name7
tb2(7) = tbothers_name8
tb2(8) = tbothers_name9
tb2(9) = tbothers_name10
For i = 0 To (arrOthers.Count - 1)
tb1(i).Text = arrOthers.Item(i).strdirno
tb2(i).Text = arrOthers.Item(i).strdirname
Next