В первом случае вы должны иметь возможность использовать propertychangeevent с зарегистрированными слушателями, обычно, если у вас есть текстовое поле, в этом поле будет прослушиватель изменения свойства, а затем всякий раз, когда поле изменяется, некоторые событие будет запущено в автобус. Естественно, вам все еще нужно привязать пользовательский интерфейс к объекту модели (я предлагаю Gwittir, он делает все это очень хорошо).
Вторая проблема аналогична: сервер выполняет обратный вызов через любые средства, которые у вас есть, и затем это должно вызвать событие на шине, которое говорит: «поле, что имеет новое значение !!!», и в этот момент отдельные поля (которые должны быть зарегистрированы и прослушиваются) могут решать, следует ли прослушивать это событие и реагировать соответствующим образом.
Таким образом, в основном ваши поля должны прослушивать шину, и всякий раз, когда модель изменяется, со стороны сервера или пользовательского интерфейса, на шину должно отправляться сообщение, чтобы любые заинтересованные слушатели могли обработать это изменение. Это разъединяет дизайн и обрабатывает оба случая. И упрощает сложные взаимодействия на уровне виджетов.
Я не думаю, что эта установка нарушает MVP каким-либо значимым образом, чтобы быть самым чистым (когда я создаю MVP), вы могли бы попросить вашего докладчика прослушать шину, а затем сказать, что представление меняется, но мне кажется, что бессмысленный уровень абстракции, связи и источника ошибок и дальнейшей работы позже.
Дайте мне знать, если это ответ на неправильный вопрос, я отредактирую, если не пойму тонкости проблемы.