看起来它应该很简单,但我显然太密集了,无法弄明白。我使用简单的ObjectQuery
得到了一个ObjectResult;它只是数据表中的几条记录。我将它分配给CollectionViewSource
Source属性。然后,我查看CollectionView
的View属性,看到CanFilter
和CanSor
t都是false。当我将DefaultView作为BindingListCollectionView时,它显示CanCustomFilter
为false。由于这些是只读的,我无法更改值。现在我想对检索到的数据设置一个过滤器(或排序),而不是回到SQL Server,但是对于我的生活,我找不到一种方法来获取这些属性设置为true的数据。
我尝试使用ObjectResult.AsQueryable<T>()
,结果是CanFilter
和CanSort
为真,但这会将视图类型从System.Windows.Data.BindingListCollectionView
更改为MS.Internal.Data.EnumerableCollectionView
而我不能找到一种方法将EnumerableCollectionView
投回到BindingListCollectionView
。
任何指针都会非常感激。
答案 0 :(得分:0)
我认为这种偏差的主要原因是BindingListCollectionView
无法过滤或排序任何IQueryable
个对象(不知道为什么),尽管在设置{{1}时执行了查询}}。最简单的方法是使用Source property
方法执行查询,但形成的ToList<T>()
可以按List<T>
进行排序和过滤