我正在编写一个VB.Net WPF应用程序,该应用程序使用MainWindow上的框架来显示包含多个标签的页面。我会根据页面中的逻辑动态更新这些标签,但是一旦更新了这些标签,就不会在显示页面的框架中反映出来。
这是用于更新 Page2.xaml.vb 中的标签的子项:
Public Sub UpdateLabels(Name As String, microphonefinal As List(Of String))
Dim labelList As New List(Of Label)
For i As Integer = 0 To microphonefinal.Count - 1
For Each Label As Label In Page1Grid.Children
If Label.Name.Contains(Name) Then
Label.Content = microphonefinal(i)
Exit For
End If
Next
Next
End Sub
我使用以下命令从 MainWindow.xaml.vb 调用上述子程序:
Dim form = New Page2
If microphonefinal.Count > 0 Then
form.UpdateLabels("Microphones", microphonefinal)
End If
我不确定是否是因为我正在创建Page2的新实例。但是,如果不包括在内,则会出现错误:“引用非共享成员需要对象引用”。。
我尝试使用 frame.Refresh()来查看是否会使用标签中的新值更新页面,但不会。我还使用了 MsgBox 来显示标签的内容,以确保它们已更改。
我做错什么了吗?还是我想念什么?如果您需要其他信息,请告诉我。谢谢!
答案 0 :(得分:0)
我设法通过使用您所说的框架来访问类UpdateLabels()
的子Page2
。因此,调用该子代码是这样的:
frame.Content.UpdateLabels("Microphones", microphonefinal)