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