Как выполнять навигацию, когда несколько видов используют одну и ту же модель вида - PullRequest
1 голос
/ 30 ноября 2011

У меня есть представление с моделью представления с достаточно сложной структурой объекта.Я хочу, чтобы пользователь мог добавить небольшой объем данных к объекту в модели представления и создал второе представление, к которому нужно перейти в том же регионе, что и первое представление.Поскольку для модели представления дополнительного представления очень мало требований, он использует ту же модель представления, что и исходное представление.Нажав кнопку, я хочу загрузить дополнительное представление, разрешить пользователю вводить некоторые данные, которые обновят модель представления, и нажать кнопку OK, которая затем будет использовать навигационный сервис для перехода к предыдущему представлению.Однако вызов

_regionManager.RequestNavigate(<regionname>, <viewname>

, похоже, ничего не делает.Я пометил ViewModel как NonShared и поставил точку останова в коде позади представления, куда импортируется модель представления, но точка останова никогда не достигается.Что мне здесь не хватает?Или есть лучший способ добиться того, чего я пытаюсь достичь?

1 Ответ

0 голосов
/ 01 декабря 2011

В PRISM - есть 2 навигационные стратегии. Навигация по состоянию и навигация по представлению. Похоже, что то, что вы делаете, может быть основанной на состоянии навигации и отдельные представления не очень нужны.

Однако ничто не мешает вам делать то, что вы хотите. Я бы просто протестировал - попробуйте также поставить NonShared на просмотры. Я почти уверен, что у вас есть ошибка композиции. RegionManager не выбрасывает исключения, по умолчанию глотает их. Чтобы действительно увидеть, что происходит - добавьте обработчик событий для RegionManager и посмотрите, какое исключение вы получите. Подробнее здесь: http://blogs.southworks.net/gmaliandi/2011/08/how-to-prevent-region-navigation-from-hiding-exceptions-in-prism/

...