Лучшая практика для обмена данными между страницами
Мне было интересно, что лучше всего посылать переменные типа selectedItem и т. Д. Между страницами в UWP? Является ли хорошей идеей просто создать класс статической глобальной переменной, о которой знает каждая страница?
2 ответа
Я собираюсь подвести итог Microsoft Best Practice здесь:
Для простых данных (например, строк):
Использовать Frame.Navigate(TypeName, Object)
метод, где в качестве второго аргумента всегда должна быть строка (даже если она допускает объекты). Второй аргумент может быть извлечен из NavigationEventArgs.Parameter
в Frame.Navigated
обработчик события.
Для сложных данных (кроме строк):
Здесь вы можете выбрать один из двух вариантов, в зависимости от размера и сложности вашего приложения:
- Либо управляйте ссылкой на любые сложные данные внутри вашего
App
класс прямо - Или сохраните ссылку на них в любом классе менеджера, который является членом вашего
App
учебный класс. (напримерNavigationDataManager
).
На самом деле, если вы используете подход MVVM, у вас есть вся необходимая информация в классе (ах) ModelView. Если вы не используете MVVM, просто используйте одноэлементный класс или даже статический глобальный класс.