Чтобы создать составное представление приложения в моем приложении с разными регионами, до сих пор я всегда использовал презентатор содержимого и использовал DataBinding для установки его содержимого.
Если бы я хотел изменить его содержимое, мне просто нужно было бы использовать агрегатор событий, опубликовать ViewZoneChangedEvent, подписаться на него в окне «оболочки» и соответствующим образом обновить модель просмотра, чтобы новые данные быть доступным для привязки, и пользовательский интерфейс будет обновлен.
Я недавно наткнулся на эти регионы в Prism, на самом деле я видел их какое-то время, но я не чувствовал себя комфортно с ними, но, поскольку Prism - это своего рода «руководство по передовым методам», возможно, я что-то упускаю: позвольте мне объяснить почему я чувствую себя некомфортно.
при моем старом способе работы нет связи с XAML. вы никогда не упоминаете какую-либо конкретную магическую строку, которая должна присутствовать в XAML, и я думаю, что это важно, поскольку стиль может измениться.
Если бы хотя бы регионы выполняли проверку имен регионов во время компиляции (проверьте, действительно ли они существуют где-то), это потребовало бы использования допустимых имен регионов и было бы очень полезно при рефакторинге, но, насколько я знаю, такого нет. Некоторые люди используют перечисления и метод ToString
перечисления, чтобы преобразовать его в строку и использовать в качестве имени региона, но опять же, насколько мне известно, нет реальной процедуры для проверки, действительно ли введенная строка действительна, и показать ошибка при компиляции, например, для Brushes.InValidColor.
Итак, мой вопрос заключается в следующем: что области призмы приносят в таблицу по сравнению с простой старой привязкой (плюс eventAggregator, если вы хотите общаться через ViewModels)?
и верны ли мои предположения о проверке названий регионов во время компиляции?