Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.08.2012, 14:54
|
|||
---|---|---|---|
|
|||
Как заставить RequestNavigate (PRISM) регистрировать представления с их именем? |
|||
#18+
Задача: заставить RequestNavigate регистрировать представления с их собственным именем. Это необходимо для последующего обращения к ним с помощью Region.GetView(contract) Использование AutoPopulateExportedViewsBehavior с ViewExport регистрирует представления в регионах сразу при загрузке контейнера. Код моей вьюшки: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
По нажатию кнопки вызывается событие: Код: c# 1. 2. 3. 4. 5.
Затем RegionManager делает что-то вроде этого: Код: c# 1.
Мне же нужно заставить его делать это: Код: c# 1.
Чтобы потом вызвать вьюшку так: Код: c# 1.
Ай нид хэлп! =) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.08.2012, 19:58
|
|||
---|---|---|---|
|
|||
Как заставить RequestNavigate (PRISM) регистрировать представления с их именем? |
|||
#18+
Нашел статью про RequestNavigate: http://blogs.msdn.com/b/kashiffl/archive/2010/10/04/prism-v4-region-navigation-pipeline.aspx Представлена последовательность вызова методов. Реализовал метод ConfirmNavigationRequest интерфейса IConfirmNavigationRequest. Там прописываю: Код: c# 1. 2.
И тут новый затык: как динамически получать представление из экспорта, зная его имя? Было бы полезно что-нибудь из оперы: getExportedInstanceFromString(navigationContext.Uri.OriginalString) Только есть ли стандартные методы реализации чего-то подобного? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.08.2012, 22:30
|
|||
---|---|---|---|
Как заставить RequestNavigate (PRISM) регистрировать представления с их именем? |
|||
#18+
Прочитай документацию и посмотри примеры. IConfirmNavigationRequest служит совсем для других целей: - для блокирования навигации - обработки смены view Если переход не запрещен(callback возвращает true), то Navigation Service c помощью DI контейнер создает View с нужным именем. Для этого View должно быть зарегистрировано при загрузке модуля в Unity контейнере, а при использовании MeF, иметь соответствующий атрибут - View ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2012, 10:08
|
|||
---|---|---|---|
|
|||
Как заставить RequestNavigate (PRISM) регистрировать представления с их именем? |
|||
#18+
Собственно чем и занимаюсь. Если ты знаешь, как отловить загрузку View с помощью RequestNavigate другим путем, скажи, пожалуйста. А если нет, то чем плох для этих целей ConfirmNavigationRequest? =) В общем, пришел к выводу, что этот момент в PRISM как-то не особо продуман. И решил перегружать View при переходе на нее: Код: c# 1. 2. 3.
Переопределил RegionAdapter для своего элемента региона. Там срабатывает событие region.ActiveViews.CollectionChanged в методе protected override void Adapt(IRegion region, BooksContainer books), в котором уже и определяю логику для добавляемых и удаляемых элементов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=21&tablet=1&tid=1441705]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 128ms |
0 / 0 |