当前位置: 首页 > 编程语言 > C#

WindowsPhoneCollectionViewSort不显示任何内容Share

时间:2023-04-10 18:59:38 C#

WindowsPhoneCollectionViewSort不显示任何内容.简单吧?除了我无法让它工作。在仔细阅读StackOverflow和interwebz之后,推荐的解决方案似乎是使用CollectionViewSource。好吧,我正在尝试使用它,但没有显示任何项目。一旦我切换到包含XAML中的项目的ObservableCollection,一切都显示正常。我的数据是从数据库异步加载的。XAML视图模型publicclassMyViewModel{privateObservableCollection_allItems=newObservableCollection();公共CollectionViewSourceSearchResults{得到;私有集;}publicMyViewModel(){SearchResults=newCollectionViewSource{Source=_allItems};_allItems.Collection_Changed+__()=>SearchResults.View.Refresh();LoadAllItemsAsync();}privateasyncvoidLoadAllItemsAsync(){IListmodels=awaitLoadMyModels();_allItems.AddRange(models.Select(model=>newMyItemViewModel(model)));如您所见,我什至还没有尝试编写过滤代码。上面的代码不应该基本上显示一个包含我已加载的所有项目的LongListSelector吗?如果我将SearchResults类型更改为ObservableCollection并让getter返回_allItems,我的页面将显示预期的项目。我在这里做错了什么?问题在于LongListSelector控件需要其ItemsSource来实现IList,而CollectionViewSource则不需要。这意味着您不能立即将CollectionViewSource绑定到LongListSelector。您可以通过尝试在代码隐藏文件中设置它来看到这一点,如下所示:myLongListSelector.ItemsSource=myCollectionViewSource.View;这给出了一个错误,指出它无法将视图转换为IList。我知道至少有两种解决方案,一种是围绕实现IList的CollectionViewSource编写包装类,然后绑定到它。另一个问题给出了一个例子(我没有想到):LongListSelectorgroupingwithCollectionViewinWindowsPhone7orWindowsPhone8另一种方法是不使用CollectionViewSource,而是使用System.Linq进行排序,如下:HowtosortLongListSelector在WindowsPhone上面是C#学习教程:WindowsPhoneCollectionViewSort不显示任何内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——本文已收藏来自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: