Я использовал MVVM Light Toolkit, чтобы помочь изучить шаблон MVVM. Однако мне не удалось решить проблему пользовательских элементов управления в сценарии элементов управления.
Например, в приложении Timesheet допустим, что у нас есть элемент управления NewUnitOfWork. При первой загрузке панель с ListBox со списком проектов загружается как содержимое NewUnitOfWork. Пользователь нажимает на один. Новая панель заменяется ListBox, содержащим возможные задачи для этого проекта. Выбирается задача и загружается новая панель, которая будет содержать элементы управления для ввода данных для выбранной задачи выбранного проекта.
Итак, у нас есть выбранный элемент в одном пользовательском элементе управления, который передается двум другим пользовательским элементам управления, которые, в свою очередь, заменяются как содержимое элемента управления NewUnitOfWork (или окна).
Если у каждого элемента управления есть своя ViewModel, нам нужно передать выбранное значение из одной ViewModel в другую и т. д.
У меня он работает в ситуации с одним пользователем, используя глобальные переменные (через «сервис»). Однако с этим возникают проблемы с параллелизмом, и это не очень хорошее решение. Это ниже среднего.
Я много раз видел на этом форуме предложение иметь ViewModel в качестве члена другой ViewModel. Хотя это решает проблему, я считаю, что это нарушение шаблона MVVM. Другая ViewModel не связана с пользовательским интерфейсом, а ViewModel должна быть напрямую.
Так. Кто-нибудь нашел чистый, совместимый с MVVM способ делать такие вещи?
Ваше здоровье