2014-12-06 58 views
0

基本上,我的應用程序中有一個頁面,其中有一個通過藍牙接收數據的異步功能。我想根據我通過另一頁上的藍牙接收的數據在我的主頁上執行功能。我搜索了一下,大多數人都建議創建一個基類並從同一個類繼承這兩個頁面,但這不是我想要做的:我不想執行主頁面函數的一個通用實例,我想執行屬於我的應用程序顯示的主頁面的特定主頁面功能。在Windows Phone 8中訪問另一個頁面的功能

我想到了兩個可能的解決方案是:

  1. 更新的基礎上接收到的數據的主網頁類的靜態變量,使用屬性每次變量的變化值時,執行所需要的功能,但問題是我想要執行的功能是非靜態的。
  2. 如果我可以知道我的應用程序實例化的主要頁面類的對象名稱,我可以簡單地將這些功能公開並使用如MainPageObjectName.myFunction()這樣的語法來訪問它們,但我不知道名稱由我的應用程序從MainPage類實例化的對象。

有什麼建議嗎?提前致謝。

回答

0

阿里,我在這裏假設你需要在一些背景(異步)任務完成時更新MainPage.xaml的內容。

最好的方法是在應用程序中有一個DataModel(MVVM)。更多信息herehere

通過這樣做,當異步任務完成時,函數將被調用來更新保存您的數據的DataStructure。由於該模型實現了INotifyPropertyChanged類,因此您的UI上的控件(即使它們位於另一頁上)將自動更新。

+0

此外,即使您可以獲得MainPage類的實例(例如,通過將其存儲在全局靜態中),也不能保證在墓碑(暫停/終止/恢復)的情況下, 。 – 2014-12-08 00:13:26

相關問題