首页 > 解决方案 > 当我更新标签的内容时,WPF 应用程序页面没有更新

问题描述

我正在编写一个 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显示标签的内容以确保它们已更改。

难道我做错了什么?或者有什么我想念的吗?请让我知道是否还有您需要帮助的信息。谢谢!

标签: wpfvb.net

解决方案


正如你所说,我设法通过使用框架来访问类的子UpdateLabels()类。Page2所以要调用子我这样编码:

frame.Content.UpdateLabels("Microphones", microphonefinal)

推荐阅读