Сценарий: я начинаю с главной страницы моего приложения.Я перехожу на подстраницу А, меняю значение, нажимаю кнопку «Назад», и связанный текстовый блок на главной странице не меняется.Если я перейду на подстраницу B, TextBlock, использующий эту же привязку, изменится.Аналогично, если я снова перейду на страницу A, я увижу измененное значение.Если я выйду из приложения, новое значение появится на главной странице.Просто при использовании кнопки «Назад» обновление не запускается.
У меня все работающее INotifyPropertyChanged работает.Как я уже сказал, привязка работает в любом сценарии, кроме перехода на главную страницу.Как отправить сообщение или иным образом вызвать обновление привязок на этой странице?Спасибо!
Редактировать:
На основании принятого ответа от willmel, вот что я сделал:
Мой файл MainPage.xaml имеет следующую разметку:
<TextBlock Text="{Binding Title, Mode=OneWay}" />
Мой файл MainViewModel.cs имеет следующее:
public string Title
{
get { return ProfileModel.Instance.DescriptionProfile.Title; }
}
И я добавил это в конструктор 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);
}
}