Переход на страницу сведений - модель общего представления или строка запроса навигации? - PullRequest
6 голосов
/ 09 июня 2011

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

Что я должен использовать? Есть ли проблемы с использованием одного подхода над другим (доступ к текущему Uri из модели представления, время событий навигации и т. Д.)?

Ответы [ 2 ]

8 голосов
/ 09 июня 2011

Лично я бы рекомендовал передать идентификатор как часть строки запроса URI навигации. Эти URI восстанавливаются для формирования бэк-стека, когда ваше приложение повторно включается после захоронения.

Когда ваше приложение восстанавливается после захоронения, вы воссоздаете модель представления вашего приложения из состояния приложения, а затем используете строку запроса URI, чтобы «объединить» вновь созданное представление с требуемым DataContext.

Смотрите обработанный пример здесь:

http://www.scottlogic.co.uk/blog/colin/2011/05/a-simple-windows-phone-7-mvvm-tombstoning-example/

1 голос
/ 28 июля 2011

два подхода довольно хороши.

реальная разница в процессе надгробной плиты .

когда вы вернетесь в свое приложение, идентификатор вашего объекта будет проанализирован:

  • в строке запроса.(собственный)
  • с вашим конкретным изолированным управлением хранилищем.

если вы выберете совместно используемую модель просмотра, вам придется сохранить идентификатор при переходе к.

сочетание этих двух вариантов кажется наилучшим: вы переходите с помощью queryString и используете sharedViewModel, поэтому при переходе на новую страницу вы получаете идентификатор из queryString и получаете данные из sharedViewModel с этим идентификатором!

вы можете управлять своей SharedViewModel для сохранения данных в IsolatedStorage, чтобы восстановить загруженные в сеть данные, когда захоронены

...