Windows phone 7 使用MVVM Light刷新背面导航上的绑定

Windows phone 7 使用MVVM Light刷新背面导航上的绑定,windows-phone-7,binding,navigation,refresh,mvvm-light,Windows Phone 7,Binding,Navigation,Refresh,Mvvm Light,场景:我从我的应用程序主页开始。我导航到子页面A,更改一个值,点击后退按钮,主页中绑定的文本块不会更改。如果我导航到子页面B,使用相同绑定的文本块会发生变化。同样,如果我再次转到A页,我会看到更改的值。如果退出应用程序,新值将显示在主页上。只有在使用“后退”按钮时,才会触发刷新 我所有的InotifyProperty更改的东西都在工作。正如我所说,除了导航回主页外,绑定在所有场景中都有效。如何发送消息或以其他方式触发该页面上绑定的刷新?谢谢 编辑: 根据willmel的公认答案,我做了如下工作:

场景:我从我的应用程序主页开始。我导航到子页面A,更改一个值,点击后退按钮,主页中绑定的文本块不会更改。如果我导航到子页面B,使用相同绑定的文本块会发生变化。同样,如果我再次转到A页,我会看到更改的值。如果退出应用程序,新值将显示在主页上。只有在使用“后退”按钮时,才会触发刷新

我所有的InotifyProperty更改的东西都在工作。正如我所说,除了导航回主页外,绑定在所有场景中都有效。如何发送消息或以其他方式触发该页面上绑定的刷新?谢谢

编辑:

根据willmel的公认答案,我做了如下工作:

My MainPage.xaml文件具有以下标记:

<TextBlock Text="{Binding Title, Mode=OneWay}" />
我将其添加到MainViewModel构造函数中:

Messenger.Default.Register<PropertyChangedMessage<string>>(this,
        (action) => DispatcherHelper.CheckBeginInvokeOnUI(
        () => RaisePropertyChanged("Title")));

在视图模型中,如果子页面更改了属性,则需要对其进行修改。(注意,这里的属性是bool类型,但可以是任何类型)

最后,请注意,要使用
DispatcherHelper
,您需要将以下内容添加到
App
构造函数(
App.xaml.cs


谢谢在此基础上进行更改后,我能够做我需要的事情。我正在修改我的OP,以显示基于此的一些细节。
Messenger.Default.Register<PropertyChangedMessage<string>>(this,
        (action) => DispatcherHelper.CheckBeginInvokeOnUI(
        () => RaisePropertyChanged("Title")));
<TextBox Grid.Row="1" Width="250" Height="100" Text="{Binding TitleEdit, Mode=TwoWay}" />
        public string TitleEdit
    {
        get { return ProfileModel.Instance.DescriptionProfile.Title; }

        set
        {
            if (ProfileModel.Instance.DescriptionProfile.Title == value) return;

            string oldValue = ProfileModel.Instance.DescriptionProfile.Title;


            ProfileModel.Instance.DescriptionProfile.Title = value;

            RaisePropertyChanged("Title", oldValue, value, true);
        }
    }
  Messenger.Default.Register<PropertyChangedMessage<bool>>(this,
    (action) => DispatcherHelper.CheckBeginInvokeOnUI(
   () =>
      {
         MessageBox.Show(action.newValue.ToString());
         //do what you want here (i.e. RaisePropertyChanged on a value they share)
     }));
RaisePropertyChanged("Preference", oldValue, value, true);
DispatcherHelper.Initialize();