Сортировка / группировка данных в WP7 на основе пользовательского ввода с использованием LongListSelector - PullRequest
1 голос
/ 30 декабря 2010

Я работаю над приложением отображения инвентаря (основной / подробности) для Windows Phone 7, где у пользователя есть возможность изменить сортировку.Источником данных является XML из Интернета, и в зависимости от выбранной сортировки результаты представляют собой плоский список (отсортированный по имени, номеру модели и т. Д.) Или сгруппированные по выбранным атрибутам (цвет, размер и т. Д.),Я предварительно определю, будет ли сортировка возвращаться плоской по сравнению с группой, и она не будет выбираться пользователем.

Я отображаю результаты в сводном элементе управления WP7 и хочу / нужно, чтобы различные виды отображались втот же PivotItem (размещение сортировки в разных PivotItems на самом деле не вариант).Источником для списка является Observable Collection (на самом деле на данный момент это CollectionViewSource, но я также не привязан).Я использую MVVM Light Framework.

Я играл с LongListSelector из набора инструментов Silverlight, и похоже, что он делает то, что я хочу.Я прочитал несколько постов (начиная с WP7 ListBox Grouping ), и фактически он работает для плоского списка (сортировка не применяется, просто по умолчанию, как и из источника).Теперь я пытаюсь найти правильный способ его использования.

Мои вопросы:

  • Можно ли изменить структуру отображения данных (плоский / отсортированный или сгруппированный) без необходимости создавать / поддерживать несколько наблюдаемых коллекций одной и той же информации (по одному для каждого варианта сортировки)?

  • Если нет, то является ли лучшим способом сохранить локальную копию данных локально на телефоне и работать с нее?Я ожидаю, что получу удар по сложности, но получу экономию на производительности / отзывчивости.

  • Чтобы отобразить различные результаты в одном и том же PivotItem, следует ли создавать пользовательские элементы управления с соответствующим форматированием и заменять их в сводной таблице на основе выбранного вида, или я могу сделать это черездинамические изменения ItemSource и ItemTemplate?

  • Является ли Observable Collection / CollectionViewSource подходящим способом?

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

Спасибо, Рич

1 Ответ

0 голосов
/ 17 марта 2011

Можно ли реструктурировать способ отображения данных (плоский / отсортированный или сгруппированный) без необходимости создавать / поддерживать несколько наблюдаемых коллекций одной и той же информации (по одной для каждого варианта сортировки)?

Я думаю, что вы можете попробовать использовать LINQ для запроса вашей коллекции и использовать этот запрос в качестве источника для вашей LLS.Я не уверен, какова будет производительность, но вы можете попробовать.В качестве альтернативы, IIRC различные коллекции ViewSource имеют способы изменить представление ваших данных, так что вы можете проверить их.

...