WPF - привязка к свойству только для чтения - уведомление об изменениях? - PullRequest
1 голос
/ 14 января 2011

Предположим, у меня есть приложение со следующей структурой:

(1) ViewModelA

(2) ReportManager

(3) ViewA

Итак, во-первых, позвольте мне избавиться от очевидного. ViewA привязывается к ViewModelA.

Теперь о не столь очевидном. ViewModelA имеет единственный экземпляр ReportManager, внедренный в его конструктор. ViewModelA предоставляет общедоступное свойство только для чтения, которое называется SomeReport. Получатель этого свойства указывает на свойство из единственного экземпляра ReportManager. Рассмотрим следующий пример ниже:

    public ISomeViewModel SomeReport
    {
        get { return _reportManager.SomeReport; }
    }

В ViewA у меня есть ContentPresenter, свойство содержимого которого привязывается к свойству SomeReport в ViewModelA, и поскольку свойство SomeReport в ViewModelA доступно только для чтения, я установил привязку как OneWay.

Любые и все изменения, внесенные в свойство SomeReport, вносятся в класс ReportManager - таким образом, это свойство имеет частный установщик. Проблема, с которой я сталкиваюсь, заключается в том, что ContentPresenter в ViewA не регистрирует изменения, внесенные в свойство SomeReport.

Буду признателен за любую помощь в том, что я потенциально делаю неправильно.

Спасибо.

1 Ответ

1 голос
/ 14 января 2011

Вы можете реализовать INotifyPropertyChanged в своей ViewModel, а затем сообщить об изменении SomeReport, вызвав NotifyPropertyChanged.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...