2011-02-09 8 views
0

Я ищу какое-то направление.Сортировка объектов

Мне нужна сортируемая коллекция объектов, которая также может уведомлять, когда элементы добавляются/удаляются из этой коллекции, поскольку я привязываю ее к элементам меню как список окон, открытых в моем приложении.

Может кто-нибудь, пожалуйста, сообщите, что будет хорошим типом коллекции, то есть List <>, ObservableCollection и так далее, и как бы я хотел сортировать указанную коллекцию.

Большое спасибо заранее.

ответ

0

Спасибо за все ответы.

Было возможно упростить вещи, поскольку я понял, что мне нужна только коллекция, которая будет сортироваться для отображения при привязке к пунктам меню.

Поэтому я смог использовать следующий код для сортировки списка объектов панели через пункт меню parent (miPanels) в этом случае. (PanelName является одним из свойств объекта)

miPanels.Items.SortDescriptions.Add(new SortDescription("PanelName", ListSortDirection.Ascending)); 

Еще раз спасибо за всех людей, которые нашли время, чтобы смотреть и реагировать.

0

Вы пробовали использовать System.Windows.Forms.BindingSource вместе с System.Windows.Forms.BindingNavigator? Они будут делать именно то, что кажется вам нужным, - привязать коллекцию объектов к навигационному меню.

Что касается сортировки, вам просто нужно получить список элементов BindingSource, очистить BindingSource, выполнить сортировку в списке и снова добавить отсортированные элементы в BindingSource.

Смотрите эти ссылки полезные примеры:

1

Вы могли бы попытаться обернуть ObservableCollection в CollectionView, уведомления будут propaga и вы можете сортировать, фильтровать и группировать элементы.

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

Смежные вопросы