在wpf中设置一个页面与另一个页面的可标签值

本文关键字:另一个 标签 一个 设置 wpf | 更新日期: 2023-09-27 18:29:16

嗨,我有两个页面MainPage和MessagePage。

MessagePage显示在MainPage的TargetName="ContentFrame"中。

现在我需要从MessagePage在MainPage中设置一个TextBlock txtblkMsgStatus。

我该怎么做?

注意:单击MainPage中的链接按钮时,不会直接从MainPage导航MessagePage。相反,单击MainPage的链接按钮后,MsgShowPage将呈现在TargetName="ContentFrame"中。从MsgShowPage单击其他内容,就会呈现MessagePage。因此,MessagePage最终在TargetName="ContentFrame"中呈现

在wpf中设置一个页面与另一个页面的可标签值

我喜欢在这种情况下使用属性更改事件,因为您可以在许多不同类型的自定义用户控件中实现它。然后,您将在messagePage上创建事件,并且当事件被触发时,主页上的处理程序将执行所需的步骤。或者,如果可能,您也可以使用messagePage中的现有事件。

例如,在您的MessagePage中:

Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged
Private Property m_prop As String
    Public Property Prop As String
        Get
            Return m_prop 
        End Get
        Set(value As String)
            Me.m_prop = value
            NotifyPropertyChanged("Prop")
        End Set
    End Property
Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    End Sub

在您的主页上:

AddHandler ReportsTreeView.PropertyChanged, _
                AddressOf ChangeHandler
Private Sub ChangeHandler(sender As Object, e As ComponentModel.PropertyChangedEventArgs)
    Select Case e.PropertyName
            Case "Prop"
               'do something
        End Select
    End Sub

很抱歉使用VB。您可以尝试例如:http://converter.telerik.com/以转换为c#。

工作正常。。感谢代码项目

Prism事件聚合器服务和扩展方法