powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как правильно работать с PRISM?
2 сообщений из 2, страница 1 из 1
Как правильно работать с PRISM?
    #38706612
KononovAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Пытаюсь познакомиться с Prism. Подскажите, правильно ли я делаю? :)

Предполагается примерно такой функционал программы:

1. Показывается SplashScreen до тех пор, пока пользователь не щелкнет по экрану
2. После этого открывается главное меню (несколько кнопок)
3. По нажатию на кнопку открывается рабочее окно, в котором пользователь что-то вводит.
4. После нажатия на "Сохранить" у пользователя спрашивается "Да/Нет"
5. Если пользователь нажал "Да", то выполняется запись данных на диск и в это время на экране должна быть панелька поверх текущего окна с текстом "Выполняется операция"
6. Выполняется возврат в главное меню
7. По нажатию на "Выход" программа снова переходит к SplashScreen

Что сделал:

1. Сделал модули "Starter", "Splash", "Menu", "Editor", "Waiting", "Confirm"
2. Создал классы для событий:
"Начать работу" - публикуется "Starter"-ом при инициализации. Подписчик "Splash". Выполняет добавление View в Shell
"Показать меню" - публикуется "Splash"-ом при щелчке мышью. Подписчики "Splash" и "Menu". "Splash" убирает себя из Shell, "Menu" - добавляет

"Начало ожидания операции" - публикуется кем угодно (в моем случае обработчиком сохранения данных). Подписчик "Waiting". Выполняет внедрение View в Shell.
"Окончание ожидания операции" - публикуется кем угодно (в моем случае обработчиком сохранения данных). Подписчик "Waiting". Выполняет удаление своего View из Shell.

Есть еще несколько событий, но они по сути однотипны.


По сути, все приложение меня получилось построено на событиях, обрабатываемых через EventAggregator.

Насколько это вообще правильно?



И пока не смог решить пару технических вопросов:

1. Модуль "Waiting" после внедрения своего View скрывает текущий активный модуль. Поэтому не получается сделать как бы затемнение фона и панель с текстом. Можно вообще внедрять View поверх других View?

2. Все модули после инициализации работают постоянно? Или их можно как-то останавливать, если они не используются в настоящее время с целью экономии ресурсов.
...
Рейтинг: 0 / 0
Как правильно работать с PRISM?
    #38708379
KononovAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да... Перечитал свой вопрос и понял, что текста написал много :)


Может кто знает как сделать это:

Есть регион "WorkspaceRegion"
В него загрузил модуль. View модуля успешно вывелось в регионе

Мне надо добавить в регион еще один View из другого модуля (простую информационную строчку).

Делаю так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
IRegion region = regionManager.Regions[RegionNames.WorkspaceRegion];
object view = region.GetView("Info");
if (view == null)
{
    view = container.Resolve(typeof(InfoView));
    region.Add(view, "Info");
    region.Activate(view);
}




Но это приводит к тому, что предыдущий View скрывается.

После удаления нового View из региона старый View показывается снова.


Можно вообще выводить несколько View в одном регионе? Или в нем выводится только одно активное всегда?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как правильно работать с PRISM?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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