Im, использующий datagrid, заполняющий itemsSource путем отражения (methodDefinition.Invoke (..)), целевой метод возвращает IQueryable < T>, где T является EntityType известных во время работы.Сортировка строк путем нажатия в заголовке столбца DataGrid с автогенерированными столбцами и IEnumerable ItemsSource
Поскольку возвращаемый тип IQueryable < T> и IQueryable < T> реализует IEnumerable, когда я делаю это:
dataGrid1.ItemsSource = methodQuery.Invoke(instance, parameters) as IEnumerable<object>;
Im в состоянии видеть строк и столбцов (плюс событие AutoGeneratingColumns отбрасывается, так я могу управлять столбцами) , но я не смог сортировать строки, щелкнув по его заголовку.
Затем я попытался сделать это:
dataGrid1.ItemsSource = methodQuery.Invoke(instance, parameters) as List<object>;
Но, как я ожидал, исключение брошено говорят, что я не могу напрямую бросить общий тип из «Model.Tab_001» до «объекта».
Кроме того, я попытался преобразовать результат в список < T> во время выполнения (посредством расширения IEnumerable.ToList(), создание делегата, который реализует FUNC, чтобы преобразовать источник в список < T>), но так как Т известен только во время выполнения, а объект (возвращающийся из метода methodDefinition.invoke) не может использовать расширение .ToList() без явного объявления типа T перед использованием этого метода.
@edit: Когда я использую этот метод с таким же IEnumerable < объекта> (который работает на сетке) и к методу расширения ToList(), то DataGrid становится заполнено пустыми строками плюс Его не стрельбой из AutoGeneratingColumns. Таким образом, я не смог увидеть результат, просто dataGrid, полный пустых строк.
Также попытался преобразовать результат в ObservableCollection, достигнув той же проблемы со списком.
Есть ли другой способ сортировки строк в datagrid, щелкнув заголовок столбца, используя List как ItemsSoure в datagrid?
Когда я делаю это я получаю DataGrid полный пустых строк, без столбцов (событие AutoGeneratingColumns не называется) –
@ RafaelA.M.S .: Это печально. Я рекомендую вам проверить [это] (http://msdn.microsoft.com/en-us/library/ms745786.aspx) и [это] (http://msdn.microsoft.com/en-us /library/system.windows.data.collectionview.aspx) ... –