Как реализовать избранное в приложении Windows Phone 7? - PullRequest
1 голос
/ 06 июня 2011

Итак, у меня есть приложение, которое считывает данные из файла XML, который выглядит следующим образом:

<?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.В классе страны есть члены для «Имя», «Флаг» и т. Д. Теперь, когда все страны отображаются в списке на странице «Список», я добавил функцию, позволяющую щелкнуть название страны и перейти кСтраница «Сведения», на которой можно просмотреть дополнительную информацию об этой стране, которая не отображалась на странице «Список».

Я хочу иметь значок звездочки, чтобы, когда пользователь нажимает на нее, приложениеотмечает эту страну как любимую.Как я могу реализовать это эффективно?Я думал о том, чтобы иметь <Favorite>No</Favorite> для каждого <Country>, иметь привязку TwoWay и сохранять избранные данные в xml-файл перед закрытием приложения как часть очистки.Это лучший способ?Может кто-нибудь указать мне пример?

1 Ответ

2 голосов
/ 06 июня 2011

Ваш метод в порядке. Альтернативой может быть новый List, в котором хранится список ID's с пометкой Favourite. Просто проверьте, какие идентификаторы есть в списке, и рядом с ними появится значок звездочки.

Для сохранения вы можете создать простой текстовый файл с этими значениями, разделенными запятой, и сохранить его (или просто сериализовать список). Когда вам нужно загрузить, вы можете загрузить файл (или десериализовать) и поместить его обратно в список. Это избавит вас от любых DOM-манипуляций с XML-файлом, а также означает, что вам не нужно хранить <Favorite>No</Favorite> для каждого элемента.

Вы можете попробовать оба метода и посмотреть, какой из них более эффективен, но с точки зрения пространства лучше будет использовать отдельный список. Это также приводит к сокращению времени загрузки файла XML.

...