我有一個用Silverlight for Windows Phone編寫的非常簡單的應用程序,我嘗試使用事件。在我的App.xaml.cs代碼中,我實現了一個GeoCoordinateWatcher,它註冊了一個gCWatche_PositionChanged方法。這可以正常工作,方法在位置更改後調用。 我想要做的就是觸發其他事件可以說DB更新後的數據庫已在gCWatche_PositionChanged方法中更新。WPF中的事件消耗
爲此,我delclared在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爲空,因此DBUpdated不叫 - 奇怪),我有一個問題,其他電話頁是根本沒有捕獲事件...
有什麼建議嗎?如何捕捉該事件。
謝謝。
是的,這是它的工作方式! PERFECTO!謝謝 – webaloman 2012-04-02 11:43:29