2012-03-29 40 views
0

嗨,我有2页MainPage和MessagePage。设置wpf中另一页的标签值

MessagePage显示在MainPage的TargetName =“ContentFrame”中。

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

我该怎么做?

注: MessagePage不direcly从导航的MainPage上的链接按钮的点击中。相反在上一个的MainPage链接按钮的点击,MsgShowPage呈现在的TargetName =“ContentFrame”。从MsgShowPage点击其他MessagePage呈现。所以最后MessagePage中的TargetName =“ContentFrame”

回答

0

被渲染,我喜欢使用性质改变了这样的情况事件,因为你可以在许多不同类型的自定义用户控件实现它。然后你会在你的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 

而在你的MainPage:

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#。

+0

是什么ReportsTreeView? – 2012-03-29 07:28:59

+0

我没有收到中的MainPage的PropertyChanged的访问 – 2012-03-29 07:29:46

+0

ReportsTreeView是在我的项目的自定义控件,请用您的控制。你是否从你的主页创建了另一个页面? – japesu 2012-03-29 07:36:19