长列表选择器排序不起作用

时间:2014-05-28 17:39:21

标签: c# windows-phone-8 longlistselector

我有两个清晰的LongListSelectors - 没有任何修改,只是从工具箱拖动并更改了名称。
我使用下面的代码填充它们(其中一个需要排序):

closestList.ItemsSource = spots;    
allList.ItemsSource = spots.OrderBy(x => x.name).ToList();

第一个列表工作正常,但第二个列表是空的 - 没有错误。当我将第二行更改为:allList.ItemsSource = spots;时,它正常工作 那种怎么回事?

1 个答案:

答案 0 :(得分:2)

在您编写自己的代码时,spots为空且不包含任何项目。当您将数据源定义为对spots的引用时,它能够识别何时添加项目(如果spots是一个可观察的集合,它看起来确实如此),这意味着在未来,当项目添加到spots时,UI将会更新。

您的第二个代码段未将数据源设置为spots的引用,而是将该数据源设置为该时刻的集合的副本。在那个时刻它是空的,并且由于复制它的行为现在已经从spots离开了该数据源,当项目被添加到spots时它将永远不会被通知,所以它保持< / em>空。