0
我有一個問題,同時節約了我的列表項獨立存儲(Windows Phone 7的)保存我的列表,以獨立存儲
這是我如何定義我的列表類。我使用數據綁定
public class CTransaction
{
public String Date1 { get; set; }
public String Amount1 { get; set; }
public String Type1 { get; set; }
public String Time1 { get; set; }
public String Dis1 { get; set; }
public String Def1 { get; set; }
public CTransaction(String date1, String amount1, String type1, String time1, String dis1, String def1)
{
this.Date1 = date1;
this.Amount1 = amount1;
this.Time1 = time1;
this.Dis1 = dis1;
this.Def1 = def1;
switch (type1)
{
case "FR":
this.Type1 = "Images/a.png";
break;
case "TA":
this.Type1 = "Images/b.png";
break;
case "DA":
this.Type1 = "Images/c.png";
break;
case "CC":
this.Type1 = "Images/mount.png";
break;
}
}
}
這裏是我插入項目到我的清單;我將一些東西分配給字段,然後我將它插入到我的列表中;
List<CTransaction> ctransactionList = new List<CTransaction>();
//some list item filling operations here***
ctransactionList.Insert(0, new CTransaction(DefaultDate, DefaultAmount, RandomType, Times, Dist, Defin));//This one inserts at the top of my list
CTransactionList.ItemsSource = null;
CTransactionList.ItemsSource = ctransactionList; //These two operations refreshes my list
!是的,你看我怎麼插入和創建我的列表。一切都好。現在我要救ctransactionList
這裏是我如何保存它(通過點擊一個按鈕)
var store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("saver"))
{
store.DeleteFile("saver");
}
using (var stream = new IsolatedStorageFileStream("saver", FileMode.OpenOrCreate, FileAccess.Write, store))
{
var serializer = new XmlSerializer(typeof(List<CTransaction>));
serializer.Serialize(stream, ctransactionList);
}
這裏是如何加載(通過點擊另一個按鈕)
var store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("saver"))
{
using (var stream = new IsolatedStorageFileStream("saver", FileMode.OpenOrCreate, FileAccess.Read, store))
{
var reader = new StreamReader(stream);
if (!reader.EndOfStream)
{
var serializer = new XmlSerializer(typeof(List<CTransaction>));
ctransactionList = (List<CTransaction>)serializer.Deserialize(reader);
}
}
}
在調試時,保存操作看起來是一致的,不會引發任何錯誤,但是在加載時;這是這條線上出現的錯誤;
ctransactionList = (List<CTransaction>)serializer.Deserialize(reader);
ERROR:有XML文檔中的誤差(3,4)。
如果你能幫助我,我會很感激。 在此先感謝
感謝您的回報。但我無法完全確定要做什麼。哪一個適用於Load,哪一個適用於保存?你給了我一整塊代碼。我有兩個按鈕,其中一個保存,另一個負載。那麼如何修改它們呢?對不起,我是這些方法的新手。 – ilerleartik 2013-04-24 23:13:09
爲什麼要創建一個像這樣的新列表; List ret = new List ();我想保存在相同類型的ctransactionList。不保存「ret」。 –
ilerleartik
2013-04-24 23:23:38
對不起,我錯過了方法簽名,第一個是從孤立存儲加載列表,第二個是保存它。新的ret列表只有在有例外的情況下才會有一個空的初始化列表;)讓我知道是否有什麼不清楚的地方 – steFranceschi 2013-04-24 23:39:18