У меня есть очень простое приложение, написанное на Silverlight для Windows Phone, где я пытаюсь использовать события.В моем коде App.xaml.cs я реализовал GeoCoordinateWatcher, который регистрирует метод gCWatche_PositionChanged.Это работает нормально, метод вызывается после изменения позиции. Я хочу запустить другое событие. Допустим, DBUpdatedEvent после обновления БД в методе gCWatche_PositionChanged.
Для этого я объявил в файле App.xaml.cs
public delegate void DBUpdateEventHandler(object sender, EventArgs e);
и у меня в классе приложения:
public event DBUpdateEventHandler DBUpdated;
событие запускается так в конце метода gCWatche_PositionChanged следующим образом:
OnDBUpdateEvent(new EventArgs());
, а также у меня естьобъявлено:
protected virtual void OnDBUpdateEvent(EventArgs e)
{
if (DBUpdated != null)
{
DBUpdated(this, e);
}
}
Теперь мне нужно использовать это событие на моей другой странице приложения для Windows Phone , которая является отдельным классом PhoneApplicationPage.
Итак, я объявил этот метод на другой телефонной странице:
public void DBHasBeenUpdated(object sender, EventArgs e)
{
Debug.WriteLine("DB UPDATE EVENT CATCHED");
}
И в конструкторе этой страницы я объявил:
DBUpdateEventHandler dbEH = new DBUpdateEventHandler(DBHasBeenUpdated);
Но когда я тестирую, событие приложения срабатывает (OnDBUpdateEventвызывается, но DBUpdated имеет значение null, поэтому DBUpdated не вызывается - странно), и у меня проблема в том, что другая телефонная страница вообще не перехватывает событие ...
Есть предложения?Как поймать это событие.
Спасибо.