powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / А как делать кошерно по MVVM?
5 сообщений из 5, страница 1 из 1
А как делать кошерно по MVVM?
    #39298107
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, все видели 100 туториалов по MVVM, делаем окно, к нему ViewModel, свойства и всё такое.

А как организовывать межоконную передачу данных? Допустим, у меня приложение, у него окно с ViewModeлью. Я открываю диалог настроек (модальный). Откуда брать VM для него? Писать новую, и создавать её каждый раз, когда надо открыть окошко? Выделить набор полей в основной VM?
...
Рейтинг: 0 / 0
А как делать кошерно по MVVM?
    #39298230
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает создать отдельную VM для этого окна? Хранить его можно и в поле основной модели, или синглтоном сделать, если окно настроек открывается из разных мест, или создавать каждый раз, заполняя из БД и т.п.
...
Рейтинг: 0 / 0
А как делать кошерно по MVVM?
    #39298233
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13th,

у меня сделано так:
есть WindowManager : IWindowManager, который открывает либо окно, либо диалоговое окно, в качестве аргументов ему нужна только ViewModel.
Далее WM ищет в ресурсах приложения и в ресурсах Parent окна (если это DialogWindow) стиль с ключом {x:Type MyViewModel}
для данной модели и открывает окно. MyViewModel наследован от WindowViewModel : IWindowModel куда засунуто закрытие окна из ViewModel, проверка при закрытии и прочие ништяки. В WindowManager добавлена вся анимация для окон, а список окон сделан в виде дерева или списка, кому как удобно.
В найденном стиле заданы все параметры для окна, включая свойства Content и ContentTemplate, либо ContentTemplateSelector, иконка и т.д.
Не думаю, что вариант претендует на удобный :) в текущем проекте по верх Manager'а окна идет еще Manager табов.
WM сделан по singleton шаблону и его можно получить в любой момент либо из ViewModel, либо из View. Когда открываю DialogBox из ViewModel, возникает вопрос, какое окно считать родительским, чтоб его "заблокировать", но я не парюсь и просто беру текущее.
...
Рейтинг: 0 / 0
А как делать кошерно по MVVM?
    #39298561
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, ничего не мешает. Я спрашиваю: какая практика считается или показалась другим специалистам более usefull. Я оба описанных мною вариантов попробовал - пока не определился.
...
Рейтинг: 0 / 0
А как делать кошерно по MVVM?
    #39298564
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, довольно замороченно. И не оч удобно (громоздко) для небольших приложений/модулей.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / А как делать кошерно по MVVM?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]