我正在为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是否可以到达这里?
完全有可能(甚至可能)答案正在盯着我,但我对这些东西不熟悉并且我已经遇到数据超载。我真的可以使用一些指导。
谢谢, 富
答案 0 :(得分:0)
是否有可能重新构建数据的显示方式(平面/排序与分组),而无需构建/维护相同信息的多个可观察集合(每种排序变体一个)?
我认为您可以尝试使用LINQ查询您的给定集合,并将该查询用作LLS的源。我不确定性能如何,但你可以尝试一下。另外,IIRC各种* ViewSource集合都有改变数据视图的方法,所以你可以检查出来。