使用LongListSelector基于用户输入对WP7中的数据进行排序/分组

时间:2010-12-30 11:38:45

标签: windows-phone-7 mvvm-light silverlight-toolkit

我正在为Windows Phone 7开发一个库存显示应用程序(主/详细信息),用户可以在其中更改排序。数据源是来自Web的XML,根据所选的排序,结果可以是平面列表(按名称,型号等排序),也可以按所选属性(颜色,大小等)分组。 。我将预先确定排序是否与组相比平稳,并且用户无法选择。

我在WP7枢轴控件中显示结果,并希望/需要不同的排序出现在同一个PivotItem中(将排序放入不同的PivotItems实际上不是一个选项)。列表的来源是一个Observable Collection(实际上此时它是一个CollectionViewSource,但我也没有结婚)。我正在使用MVVM Light框架。

我已经使用Silverlight Toolkit中的LongListSelector进行游戏,它看起来像我想要的那样。我已经阅读了很多帖子(从WP7 ListBox Grouping开始)并且实际上让它适用于平面列表(没有应用排序,只是默认,因为它来自源)。现在我正试图弄清楚使用它的正确方法。

我的问题:

  • 是否有可能重新构建数据的显示方式(平面/排序与分组),而无需构建/维护相同信息的多个可观察集合(每种排序变量一个)?

  • 如果没有,是在手机本地保存本地数据副本并从那里开始工作的最佳方法吗?我希望自己会受到复杂性的影响,但可以节省性能/响应能力。

  • 要在同一个PivotItem中显示各种结果,我应该创建具有适当格式的用户控件,并根据所选的排序将它们交换到数据透视表,或者我可以通过动态ItemSource& ItemTemplate更改?

  • Observable Collection / CollectionViewSource是否可以到达这里?

完全有可能(甚至可能)答案正在盯着我,但我对这些东西不熟悉并且我已经遇到数据超载。我真的可以使用一些指导。

谢谢, 富

1 个答案:

答案 0 :(得分:0)

  

是否有可能重新构建数据的显示方式(平面/排序与分组),而无需构建/维护相同信息的多个可观察集合(每种排序变体一个)?

我认为您可以尝试使用LINQ查询您的给定集合,并将该查询用作LLS的源。我不确定性能如何,但你可以尝试一下。另外,IIRC各种* ViewSource集合都有改变数据视图的方法,所以你可以检查出来。