2011-06-06 157 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

相关问题