Существует ли общее правило навигации в приложении MVVM Light Windows Phone?

По мере увеличения моего приложения я обнаружил, что тот же тип сущности появляется все больше и больше, как правило, в списке.

Когда кто-то нажимает на объект, я хочу перейти к подробному представлению этого объекта.

Примером этого может служить продукт: он отображается в списке продуктов по категориям, он отображается в результатах поиска или может отображаться как сохраненный избранное. В моем случае все они поступают из таблицы в локальном хранилище SQLCE.

Каждый раз, когда я каким-то образом сталкиваюсь с сущностью, которую кто-то может использовать, я в основном вырезаю один и тот же код: подпишитесь на событие SelectionChange в списке, извлеките сущность, используйте MVVM Light messaging, чтобы сообщить, что выбранный объект изменился, затем позвоните в NavigationService, чтобы сделать свой бизнес.

Кто-нибудь работал над чем-то похожим, и если да, то что вы придумали? Или что еще более важно, если есть какой-то MVVM Light toolkit, который я пропускаю, не могли бы вы указать мне в правильном направлении?

0

2 ответы

I think the question here is, how do I deal with this without cut/paste the same code each time? If this is the case, maybe trying to package the entity/listbox thing in a XAML usercontrol! Take a look at this: http://www.windowsphonegeek.com/articles/Creating-a-WP7-Custom-Control-in-7-Steps

Тогда, если представление должно быть другим, вы могли бы посмотреть на это: http://www.windowsphonegeek.com/articles/Implementing-Windows-Phone-7-DataTemplateSelector-and-CustomDataTemplateSelector (в этом примере выполняется несколько стилей в одном списке, но вы можете изменить это только применяйте другой стиль на каждой странице со списком на нем)

0
добавлено

Вы вызываете навигационную службу от кода или модели просмотра сейчас? Если первый, вы можете проверить WP7 Навигация по LBugnion для запуска его из виртуальной машины. Если вы комбинируете это с поведением EventToCommand (, как здесь ), вы должны иметь возможность создать красивую и чистую команду« MyEntitySelected »в VM, которая принимает объект как параметр.

0
добавлено
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot