1
我試圖編寫一個非常簡單的待辦事項列表應用程序來嘗試WP8編程,但是我在IsolatedStorage方面遇到了一些麻煩。IsolatedStorage在邏輯刪除時丟失對象屬性
背景:
- 該應用程序只支持一個待辦事項列表現在
- 列表itemThe待辦事項列表的類型列表項
我試圖做的一個目的:
- 將ListItem對象保存到IsolatedStorage
- 當用戶退出並且 重新打開應用程序時,應用程序應從IsolatedStorage中檢索用戶的數據。
現在,我可以在應用程序運行時檢索正確的數據。當用戶退出應用並返回時,數據全部消失。有人能幫我找出哪裏出了問題嗎?
該應用的主要代碼塊:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
ListItem toDoList1 = new ListItem();
public MainPage()
{
InitializeComponent();
ToDoList.ItemsSource = toDoList1.getObjList();
var settings = IsolatedStorageSettings.ApplicationSettings;
System.Diagnostics.Debug.WriteLine("Loading file... rows: {0}", settings.Count());
if (settings.Contains("myList"))
{
ListItem check;
settings.TryGetValue<ListItem>("myList", out check);
System.Diagnostics.Debug.WriteLine("Retrieved number of rows at load: {0}.", check.countRows());
}
else
{
System.Diagnostics.Debug.WriteLine("File does not exist");
}
}
private void add_Click(object sender, RoutedEventArgs e)
{
String myInput = input.Text;
toDoList1.addItem(myInput);
input.Text = "";
save();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
int selected = ToDoList.SelectedIndex;
toDoList1.removeItem(selected);
save();
}
public void save()
{
var settings = IsolatedStorageSettings.ApplicationSettings;
settings.Remove("myList");
settings.Add("myList", toDoList1);
int rows = toDoList1.countRows();
System.Diagnostics.Debug.WriteLine("Number of rows at save: {0}", rows);
ListItem check;
settings.TryGetValue<ListItem>("myList", out check);
System.Diagnostics.Debug.WriteLine("Retrieved number of rows at save: {0}", check.countRows());
}
}
列表項類別:
namespace PhoneApp6
{
public class ListItem
{
private ObservableCollection<String> objList = new ObservableCollection<String>();
public ObservableCollection<String> getObjList()
{
return objList;
}
public void setObjList(ObservableCollection<String> x)
{
objList = x;
}
public void addItem(String x)
{
objList.Add(x);
}
public void removeItem(int x)
{
objList.RemoveAt(x);
}
public int countRows()
{
return objList.Count();
}
}
}
感謝所有。
感謝您的建議 - 我嘗試添加'settings.Save();'在'settings.Add(「myList」,toDoList1)'之後。但是,對象屬性仍然無法保存。 –