Я работаю над приложением отображения инвентаря (основной / подробности) для Windows Phone 7, где у пользователя есть возможность изменить сортировку.Источником данных является XML из Интернета, и в зависимости от выбранной сортировки результаты представляют собой плоский список (отсортированный по имени, номеру модели и т. Д.) Или сгруппированные по выбранным атрибутам (цвет, размер и т. Д.),Я предварительно определю, будет ли сортировка возвращаться плоской по сравнению с группой, и она не будет выбираться пользователем.
Я отображаю результаты в сводном элементе управления WP7 и хочу / нужно, чтобы различные виды отображались втот же PivotItem (размещение сортировки в разных PivotItems на самом деле не вариант).Источником для списка является Observable Collection (на самом деле на данный момент это CollectionViewSource, но я также не привязан).Я использую MVVM Light Framework.
Я играл с LongListSelector из набора инструментов Silverlight, и похоже, что он делает то, что я хочу.Я прочитал несколько постов (начиная с WP7 ListBox Grouping ), и фактически он работает для плоского списка (сортировка не применяется, просто по умолчанию, как и из источника).Теперь я пытаюсь найти правильный способ его использования.
Мои вопросы:
Можно ли изменить структуру отображения данных (плоский / отсортированный или сгруппированный) без необходимости создавать / поддерживать несколько наблюдаемых коллекций одной и той же информации (по одному для каждого варианта сортировки)?
Если нет, то является ли лучшим способом сохранить локальную копию данных локально на телефоне и работать с нее?Я ожидаю, что получу удар по сложности, но получу экономию на производительности / отзывчивости.
Чтобы отобразить различные результаты в одном и том же PivotItem, следует ли создавать пользовательские элементы управления с соответствующим форматированием и заменять их в сводной таблице на основе выбранного вида, или я могу сделать это черездинамические изменения ItemSource и ItemTemplate?
Является ли Observable Collection / CollectionViewSource подходящим способом?
Это вполне возможно (даже вероятно) ответысмотрят мне в глаза, но я новичок в этом, и я перегружен данными.Я мог бы действительно использовать некоторые указания.
Спасибо, Рич