現在,我正在開發我的第一個WP7應用程序,並且遇到了一些問題,儘管我在網上可以找到我可以找到的內容,但仍然無法回答。請考慮一個具有主頁面,參數頁面和結果頁面的應用程序。在參數頁面中,用戶可以在各種文本框中輸入或更新數字。點擊後退按鈕將用戶帶回主頁面,在那裏有一個名爲「計算」的按鈕。點擊該按鈕應該獲取數據,使用該數據進行計算,並將用戶帶到結果頁面,其中顯示結果的網格。MVVM Light:我從哪裏實例化模型中的類,以及如何更新/訪問它?
在一個名爲Calculator.cs的文件中,我在名爲Models的文件夾中有一個名爲Calculator的類。我還在ViewModels文件夾中的MainViewModel.cs,ParametersViewModel.cs和ResultsViewModel.cs文件以及相應的MainPage.xaml,以及名爲Views的文件夾內的Parameters.xaml和Results.xaml。我假設所有的數據都將在Calculator類的實例中被處理,然後結果集將被返回並導向到Results.xaml。我對於在哪裏實例化Calculator類,傳遞數據,然後檢索結果感到茫然。我也有些困惑,當計算完成後,我將如何觸發自動導航到結果頁面。
任何幫助,這將不勝感激。
更新:Passing a complex object to a page while navigating in a WP7 Silverlight application有一些關於同一主題的更多信息。我可以進入App.xaml.cs並添加這樣的:
public class Foobar
{
public string barfoo = "hah!";
}
public static Foobar myfoob = new Foobar();
然後從視圖模型頁面,例如訪問AboutViewModel.cs,像這樣:
public AboutViewModel()
{
string goo = App.myfoob.barfoo;
}
但是在這一點上,我仍然不確定什麼未預見的效果可能有。在這一點上,我將解決序列化/邏輯錯誤,看看這種方法會發生什麼,或者通過跨頁面使用相同的DataContext。否則,上面鏈接中的一個海報提到序列化參數並在頁面之間傳遞它們。我關心的是HTTP GET是否有字符限制。似乎有:URI Limits in Silverlight
感謝您對此的看法。這給了我一些繼續。通過「傳入MainViewModel作爲參數」是否意味着將它們包含在URL中?或者有什麼方法可以傳遞對象本身? – Stonetip 2011-01-31 21:06:05