Я разрабатываю составное приложение WPF с использованием PRISM. У меня есть окно с родительским UserControl. Для этого родительского элемента управления пользователем определено множество дочерних регионов. дочерние представления экспортируют себя с помощью атрибута "REGIONEXPORT" MEF. Каждое дочернее представление импортирует / создает свою собственную модель представления. В родительском элементе управления пользователя есть кнопки «ОК» и «Отмена». Нажав «ОК», я хочу подтвердить и сохранить все дочерние модели. Если какая-либо проверка не удалась, то об этом должна знать модель просмотра родительского элемента управления. Для этого я использую составную команду и устанавливаю ее в RegionContext. Каждая дочерняя модель просмотра получает эту составную команду через контекст региона, и надеюсь, вы понимаете, что в основном мне нужно обмениваться данными между родительскими и дочерними моделями просмотра. Поэтому мне нужно получить RegionContext в дочерней модели просмотра, для которой я импортирую RegionManager в конструкторе модели просмотра (с использованием конструктора импорта) из RegionManager, я получаю контекст региона, а затем команды.
public class FooViewModel
{
[ImportingConstructor]
public FooViewModel(IRegionManager regionManager)
{
var regionContext = regionManager.RegionContext;
}
}
- Хорошая ли практика иметь регионального менеджера в представлении модели ??
- Это не нарушает MVVM? у нас есть просмотр связанных вещей в моделях просмотра
- Есть ли лучший подход для обмена данными между моделями просмотра (кроме агрегаторов событий)