WPF InotifyPropertyChanged и просмотр моделей - PullRequest
2 голосов
/ 14 мая 2010

Так что я думаю, что делаю что-то довольно простое. Я знаю, почему это не работает, но, похоже, должен быть прямой способ заставить его работать.

Код:

private string fooImageRoot;
 // ....
 public BitmapImage FooImage
 {
  get
  {
   URI imageURI = new URI(Path.Combine(fooImageRoot, CurrentFooTypes.FooObject.FooImageName));
   return imageURI;
  }
 }

Таким образом, CurrentFOoTypes и FooObject также поддерживают INotifyPropertyChanged.

Так что, если я привязываю TextBlock к CurrentFooTypes.FooObject.FooImageName, если либо fooObject, либо FooImageName изменяют обновления текстового блока. Как я могу подписаться на мой объект viewmodel, чтобы получать обновления в подобном стиле.

1 Ответ

1 голос
/ 14 мая 2010

Поправь меня, если я ошибаюсь. Вы хотите получать уведомления об изменениях свойств FooImageName и FooObject, оба объекта-владельца используют INotifyPropertyChanged для предупреждения наблюдателей об изменении этих свойств.

У Джоша Смита была хорошая статья , в которой он представил объект PropertyObserver, который используется только для этого сценария.

MVVM Foundation включает в себя этот объект, а также другие полезные объекты для разработки MVVM.

Вы можете использовать PropertyObserver или пользовательский код, чтобы отслеживать изменения в интересующих вас свойствах (в данном случае FooObject и FooImageName) и выполнять любые действия, необходимые для обновления URI изображения на основе этих изменений.

...