Коллекция сортируемых объектов - PullRequest
0 голосов
/ 09 февраля 2011

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 09 февраля 2011

Это сортируемая наблюдаемая коллекция

А вот еще одна реализация - я использую эту в своем проекте, работает без нареканий (мне просто нужно было расширить его , чтобы он также реализовывал интерфейс IList, чтобы его можно было использовать для определения коллекций в XAML).

1 голос
/ 09 февраля 2011

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

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

0 голосов
/ 10 февраля 2011

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

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

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

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

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

0 голосов
/ 09 февраля 2011

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

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

См. эти ссылки для полезных примеров:

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