2014-12-06 2 views
0

В основном у меня есть страница в моем приложении, где есть функция async, которая получает данные через bluetooth. Я хочу выполнять функции на своей главной странице на основе данных, которые я получаю через Bluetooth на другой странице. Я немного искал, и в основном люди предлагают создать базовый класс и наследовать обе страницы из одного класса, но это не то, что я пытаюсь сделать: я не хочу выполнять общий экземпляр функции главной страницы , Я хочу выполнить определенную главную страницу, которая принадлежит главной странице, отображаемой моим приложением.Доступ к функциям другой страницы в Windows Phone 8

Я думал, что из двух возможных решений этого:

  1. Обновление статической переменной в главном классе страницы на основе полученных данных, а также использовать свойство для выполнения требуемых функций каждый раз, когда значение переменной изменяется, но проблема в том, что функции, которые я хочу выполнить, являются нестатическими.
  2. Если бы я мог знать имя объекта класса главной страницы, которое создается моим приложением, я мог бы просто сделать эти функции общедоступными и получить к ним доступ, используя синтаксис, например MainPageObjectName.myFunction(), но я не знаю названия объект, созданный моим классом MainPage.

Любые советы? Заранее спасибо.

ответ

0

Ali, я предполагаю, что вам нужно обновить содержимое MainPage.xaml, пока закончится задание фона (async).

Лучший способ сделать это - иметь DataModel (MVVM) в вашем приложении. Больше информации here и here.

Выполняя это, когда задача async завершается, функция будет вызвана для обновления DataStructure, содержащей ваши данные. Поскольку эта модель реализует класс INotifyPropertyChanged, элемент управления вашего пользовательского интерфейса (даже если он находится на другой странице) будет обновляться автоматически.

+0

Кроме того, даже если вы можете получить экземпляр класса MainPage (например, скопировав его в глобальном статическом режиме), вы не можете гарантировать, что он всегда будет присутствовать в случае надгробия (suspend/terminate/resume) , –

Смежные вопросы