Добавление нового элемента в коллекцию не учитывает существующую сортировку при отображении в Telerik RadGridView в Silverlight

У меня есть элемент управления RadGridView в моей форме, связанный с коллекцией в моей ViewModel. Когда я добавляю новый элемент в свою коллекцию, он показывает элемент в сетке, но он всегда помещается в конец и не соблюдает текущий порядок. Кто-нибудь знает, как это исправить?

Спасибо!


person Mike Cole    schedule 18.05.2011    source источник


Ответы (2)


Если использование ObservableCollection решает вашу проблему при добавлении нового элемента, вы можете использовать событие CellEditEnded для сброса сортировки в сетке.

Вы можете подписаться на событие в коде или xaml; ознакомьтесь с документацией CellEditEnded. В обработчике вы можете отменить сортировку, а затем установить ее снова.

Я не пробовал это с компонентами телерика, только с WPF DataGrid.

person Viktor Seifert    schedule 10.06.2011

Не уверен, с какой проблемой вы столкнулись, но я собрал быстрое доказательство концепции, и все, похоже, сработало, как и ожидалось. Ознакомьтесь с загрузкой, доступной здесь:

Краткая демонстрация сетки

и дайте мне знать, как это отличается от вашей установки. Я отсортировал по идентификатору, затем при добавлении новых элементов новые элементы заполняют отсортированную коллекцию, как и ожидалось, поскольку они сделаны со случайным идентификатором, который попадает в исходный диапазон. Возможно, вы не используете ObservableCollection или *CollectionView?

-Эван

person Evan Hutnick    schedule 18.05.2011
comment
Я использую EntityCollection, сгенерированный EF... Я привязываю сетку непосредственно к модели. - person Mike Cole; 19.05.2011
comment
Ах, когда я преобразовал в ObservableCollection, сетка работала, как и ожидалось, при добавлении нового элемента. Однако он не учитывал сортировку при редактировании элемента. - person Mike Cole; 20.05.2011
comment
Ах, правда, правда, в таком случае попробуйте обернуть свою модель EF в QueryableCollectionView (добавьте System.Windows.Data к своим ссылкам). QCV инициализируется коллекцией IEnumerable, может быть привязан к вашему представлению через ту же привязку и отправляет уведомления об обновлениях при редактировании или что-либо еще, чтобы RadGridView мог это учитывать. Дайте мне знать, если вам нужна демо-версия. :) - person Evan Hutnick; 20.05.2011
comment
Я попробовал QueryableCollectionView, но, похоже, я снова потерял сортировку при добавлении, и редактирование все еще работает. - person Mike Cole; 20.05.2011