2011-06-06 61 views
1

所以我從那個看起來像這樣的XML文件中的數據讀取應用:如何在Windows Phone 7應用程序中實現收藏夾?

<?xml version="1.0" encoding="utf-8" ?> 
<Countries> 
    <Country> 
    <Name>Germany</Name> 
    <Flag>../Images/Germany.png</Flag> 
    <ID>1</ID> 
    <Description>Germany Description</Description> 
    <Capital>Berlin</Capital> 
    </Country> 
    <Country> 
    <Name>Grece</Name> 
    <Flag>../Images/Greece.png</Flag> 
    <ID>2</ID> 
    <Description>Grece Description</Description> 
    <Capital>Athens</Capital> 
    </Country> 
    ... 
</Countries> 

此數據存儲在列表countryList。國家班級擁有姓名,國旗等成員。現在,當在「列表」頁面的列表框中顯示所有國家時,我添加了能夠點擊國家/地區名稱的功能,並將其帶入「詳情「頁面,我們可以在該頁面查看更多關於該國家的信息,這些信息在」列表「頁面上不可見。

我想要一個星形圖標,這樣當用戶點擊它時,該應用會將該國家標記爲最喜歡的。我怎樣纔能有效地實現這一點?我想每個<Country>都有一個<Favorite>No</Favorite>,並且有一個雙向綁定,並在應用程序關閉之前將最喜歡的數據保存到xml文件作爲清理的一部分。這是最好的方法嗎?有人能指點我一個例子嗎?

回答

2

你的方法很好。替代方案可以是具有新的List,其存儲標記爲FavouriteID's的列表。只需檢查列表中的哪些ID,並在旁邊顯示星號圖標即可。

要保存,您可以創建一個簡單的文本文件,並用逗號分隔這些值並保存(或簡單地序列化List)。當你需要加載時,你可以加載文件(或反序列化)並將其放回列表中。這將節省您對XML文件的任何DOM操作,也意味着您無需爲每個元素存儲<Favorite>No</Favorite>

您可以嘗試這兩種方法,看看哪一種效率更高,但從空間角度來看,單獨的列表會更好。這也會導致XML文件的加載時間更短。

+2

我喜歡將收藏夾保存爲單獨的CSV文件。這樣,您可以獨立更新這兩個文件,例如添加新文件,而無需爲每個用戶升級文件。保持靜態和動態數據分離是一種很好的做法。 – ColinE 2011-06-06 05:17:51

相關問題