我的同事和我想創建一個包含一些頁面的應用程序,允許用戶更改某些設置。這些設置頁面沒有保存按鈕。有一個主要的設置頁面和兩個子設置頁面。如果用戶從三個頁面中的一個導航回來或者用戶在其中一個子頁面上進行了一些更改,則該設置應該保持不變。 該模型在主設置頁面的OnAppearing()方法中加載。因此,我們不能使用子頁面的OnDisappearing()方法來保存模型,因爲這些方法的順序以及導航頁面的Pushed()和Popped()在每個平臺上都有所不同:forums.xamarin.com/discussion/21417/navigationpage推送流行事件序列不同跨平臺Xamarin.Forms如何將模型保存到數據庫而無需保存按鈕,最佳實踐
我們現在的解決方案是將模型保存在子頁面視圖模型屬性的setter中。但這不可能是最佳做法。所以我們的問題是:是否有其他解決方案來解決這個問題?這個問題的最佳實踐是什麼?
代碼:
public ReminderRepetitive ListViewSelectedItem
{
get { return _settingsEntity.ReminderRepetitive; }
set
{
if (!Equals(_settingsEntity.ReminderRepetitive, value))
{
_settingsEntity.ReminderRepetitive = value;
OnPropertyChanged("ListViewSelectedItem");
Save();
_navigation.PopAsync();
}
}
}
public void Save()
{
_businessLayer.UpdateSettings(_settingsEntity);
}