在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"中呈现
我喜欢在这种情况下使用属性更改事件,因为您可以在许多不同类型的自定义用户控件中实现它。然后,您将在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事件聚合器服务和扩展方法