場景:我從我的應用程序主頁面開始。我導航到子頁面A,更改值,點擊後退按鈕,主頁面中的綁定TextBlock不會更改。如果我導航到子頁面B,則使用相同綁定的TextBlock會發生變化。同樣,如果我再次訪問頁面A,我會看到更改後的值。如果我退出應用程序,新的值顯示在主頁面上。只是在使用後退按鈕時,刷新不會被觸發。使用MVVM-Light刷新導航返回導航
我已經得到了我所有的INotifyPropertyChanged工作。就像我所說的那樣,除了導航返回到主頁面外,綁定還可以在每種場景中使用。如何發送消息或以其他方式觸發該頁面上綁定的刷新?謝謝!
編輯:
基於從willmel接受的答案,這裏是我所做的:
我MainPage.xaml中的文件有這個標記:
<TextBlock Text="{Binding Title, Mode=OneWay}" />
我MainViewModel.cs文件有:
public string Title
{
get { return ProfileModel.Instance.DescriptionProfile.Title; }
}
An d我已將此添加到MainViewModel構造:
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);
}
}
謝謝!基於此做出更改後,我能夠做到我需要的東西。我正在修改我的OP,以顯示基於此的一些細節。 – Stonetip 2012-01-14 02:13:00