2012-09-14 57 views
0

加載我不知道,如果我說我的問題清楚了,但我有兩個單獨的頁面和一個單一的視圖模型。最初我只有一個頁面,但我決定將它們分開,因爲我的頁面變得太大(更具體地說,我在單個頁面上有太多的數據透視項目,其中兩個頁面會爲用戶更好地分離數據)。我想知道是否有可能只從視圖模型中將特定數據加載到單個視圖中,因爲現在我的應用程序處於凍結狀態,因爲我的視圖模型嘗試加載所有數據,即使只有大約一半的數據需要在用戶正在查看的當前頁面上使用。如果是這樣,我假設我會以某種方式需要讓視圖模型知道要加載哪些數據。我將如何做到這一點。或者,創建兩個獨立的視圖模型是很好的做法,每個頁面一個視圖模型,這樣只有每個頁面的必要數據纔會相應加載並防止我的應用程序凍結?我不知道標準是什麼在這裏,或者什麼是最有效的的CPU使用率和響應時間方面,等如何選擇具體的視圖模型數據的特定視圖

回答

1

載入更多的數據比你需要絕對可以,特別是如果你這樣做下來的問題互聯網。爲什麼這樣?爲什麼不簡單地將視圖模型分爲兩部分? VM的定義基本上說:(引自Model-View-ViewModel (MVVM) Explained

視圖模型是三元組的一個關鍵部分,因爲它引入演示分離,或保持視圖從模型分離的細微差別的概念。代替把模型知道的日期的用戶的視線的,所以將其轉換的日期的顯示格式的,該模型簡單地保存數據,所述視圖簡單地保持格式化的日期,並且控制器充當兩者之間的聯絡。

如果您分開了視圖,您也可以將VM分開以便保持簡單。

不過,如果不爲你和你的數據做不公開爲某種,爲什麼不使用虛擬機的部件的服務?根據你所看到的頁面只調用你需要的方法,只設置你需要的屬性,不要全部做。如果數據真的很大,以便您的UI不會凍結(當然,同時向用戶顯示您使用進度欄獲取數據),並在另一個線程上執行此操作。

這應該是夠你描述的場景。

+0

是的,那正是我想這樣做。感謝您的答覆。實際上我也是從互聯網上加載數據,所以我相信我會分開我的虛擬機,看看如何解決這個問題。 – Matthew

+0

..它的工作原理,只是想回應!順便說一句,我喜歡你的博客WP7的Windows Phone 8應該是非常令人興奮的工作! – Matthew

+0

非常感謝@Matthew! –

相關問題