Виртуализация данных в Windows Phone 7: пример - PullRequest
0 голосов
/ 22 октября 2010

В Windows Phone ListBox поддерживает виртуализацию данных, это означает, что он может загружать только необходимые данные, а не все. Питер Торр объясняет интерфейс, который вам нужно реализовать.

Короткая версия заключается в том, что вам нужно создать как метод, который возвращает позицию элемента, так и другой метод, который возвращает элемент в определенной позиции. Проблема в том, что пример Питера Торра довольно глуп, он просто возвращает объект с индексом в качестве имени.

Мой вопрос: как вы на самом деле это реализуете?

Моя идея состоит в том, чтобы создать один файл, который содержит список (целочисленного) индекса и (целочисленного) идентификатора и файл для каждого объекта, который содержит фактические данные. Это не очень элегантная идея, но я не могу придумать ничего лучшего, не так ли?

UPDATE

Кажется, мой вопрос неточный. Когда я говорю, что пример Питера Торра «довольно глуп», я не говорю, что он сделал что-то не так; его целью было просто объяснить, какой интерфейс вам нужно реализовать. Практическая реализация будет зависеть от конкретных данных.

То, что я спрашиваю, - это какой у меня есть выбор, чтобы реализовать это? Стоит ли просто помещать данные в веб-сервис и каждый раз запрашивать их (конечно, с локальным кэшем), создавать базу данных, создавать файл для хранения индексов и один для данных? Есть ли решение достаточно хорошее в каждом случае? Каковы недостатки и недостатки каждого выбора?

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

Что еще ты после? Общая идея заключается в том, что ListBox будет вызывать ваш IList, когда ему нужны данные. он запросит элемент по определенному индексу, и вы передадите обратно объект. затем он, по-видимому, вызывает ToString () для этого объекта и отображает результат в списке.

Что это за фактический объект и откуда вы его берете, полностью зависит от вас. Возможно, вы используете действительно большой массив в памяти. Возможно, вы извлекаете данные из IsolatedStorage или из веб-службы. Вы, конечно, можете использовать его для извлечения информации о файле, но я не подозреваю, что у кого-то есть готовая реализация IList, так что это часть, которую вам придется реализовать на основе вашего конкретного проекта.

0 голосов
/ 22 октября 2010

Статья, на которую вы ссылались, включает ссылку на загружаемый проект , который демонстрирует, как это реализовать.

...