Как сделать ObjectResult фильтруемым - PullRequest
0 голосов
/ 06 октября 2011

Кажется, это должно быть просто, но я, кажется, слишком дремучий, чтобы понять это. Я получаю ObjectResult используя простой ObjectQuery; это всего лишь несколько записей в таблице данных. Я назначаю его CollectionViewSource свойству Source. Затем я смотрю на свойство View CollectionView и вижу, что CanFilter и CanSor t оба являются ложными. Когда я получаю DefaultView как BindingListCollectionView, оно показывает, что CanCustomFilter имеет значение false. Так как они доступны только для чтения, я не могу изменить значение (я). Теперь я хотел бы установить фильтр (или отсортировать) для извлеченных данных, не возвращаясь к SQL Server, но я не могу найти способ получить данные с этими свойствами, установленными в true.

Я попытался использовать ObjectResult.AsQueryable<T>(), и в результате получилось CanFilter и CanSort true, но это изменило тип просмотра с System.Windows.Data.BindingListCollectionView на MS.Internal.Data.EnumerableCollectionView, и я не могу найти способ привести это EnumerableCollectionView обратно в BindingListCollectionView.

Любые указатели будут с благодарностью.

1 Ответ

0 голосов
/ 06 октября 2011

Я думаю, что основная причина такого отклонения заключается в том, что BindingListCollectionView не может фильтровать или сортировать любые IQueryable объекты (не знаю почему), несмотря на выполнение запроса о настройке Source property. Самый простой способ - использовать метод ToList<T>(), который выполняет запрос, но сформированный List<T> может быть отсортирован и отфильтрован по BindingListCollectionView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...