我對mvvmcross和mvvm模型一般都比較陌生。我一直在努力創造我自己的跨平臺應用程序幾周,現在我堅持什麼是好的做法。我有兩個主要問題,我希望有人能幫助我與mvvmcross在多個頁面上編輯複雜的對象並保存數據
問題1: 我有很多屬性,子項,並在這些子項目子項目的複雜模型。此外,許多值是根據其他值自動計算的。 我在任何地方實現了MvxNavigatingObject,並且在發生更改時正確通知所有值。到現在爲止還挺好。
現在我想讓人們使用該應用程序來更改我的模型中的值。但是由於輸入字段太多,我想將數據分成幾頁。但每個頁面都有自己的視圖模型。這意味着每次頁面更改時重新加載我的大對象。 爲了解決這個問題,我創建了一個DataHolderService,它在所有視圖模型上作爲單例加載。然後,我讓我的視圖模型更改DataHolderService中的數據,我不必重新加載數據。
但我想知道,這是一個好習慣嗎?這樣做感覺有點奇怪。還有其他的可能嗎?就像在多個頁面上使用相同的視圖模型一樣?
問題2
我想我的數據保存到數據庫中,因此會話之間持續存在。我有一個SQLite數據庫,並能夠使用按鈕保存數據。但是,如果用戶忘記使用保存按鈕並將應用程序置於後臺直到系統最終殺死它,數據將會丟失。 因此,我添加了一個定時器,它定期將數據保存到數據庫。但我可以理解,這不是很好的做法。如果用戶不需要按下保存按鈕,將數據保存回數據庫的好方法是什麼?視圖模型處理之前是否有事件/函數會觸發?
謝謝您的回覆。 我可以將所有內容放在一個頁面上。但是我認爲,如果您能夠導航到多個頁面(使用數據透視表或viewpager)將不同的數據分類到不同的頁面,它將改善用戶體驗。但是,由於所有數據都相互影響,我需要每次重新載入所有數據,或者像我現在所做的那樣,爲數據注入singleton服務。 保存數據的想法聽起來很完美。這允許立即保存所有內容並防止快速輸入文本時發生的問題。 – Martijn