Я знаю, что есть много подобных вопросов, и я потратил много времени на поиск возможных решений. Но я все еще не уверен, что это самый простой способ сделать это.Односторонняя привязка данных DataGridView к списку объектов
Цель состоит в том, чтобы показать LogItems
(отметка времени, уровень серьезности, сообщение) в DataGridView
, отсортированную по их метке времени и позволяющую пользователю фильтровать элементы по уровню серьезности.
Вот именно то, что я (не) нужно:
- Один способ связывания данных из
DataGridView
к списку/коллекции объектов. Нет необходимости редактировать объекты черезDataGridView
или добавлять/удалять объекты черезDataGridView
. НоDataGridView
должен автоматически обновляться, когда я добавляю или удаляю объекты в этот список/коллекцию. - Объекты имеют временную метку (
DateTime
) и должны отображаться по этой временной шкале. Меня не волнует, сохранит ли этот список их сортировку (что-то вродеSortedList<T>
было бы неплохо, но его не существует), или еслиDataGridView
илиBindingSource
позаботится о сортировке. Нет необходимости для пользователя настраивать сортировку, нажимая на заголовки столбцов. - Простая фильтрация, основанная на значении одного столбца (серьезность).
Вот некоторые подходы, я придумал:
- Используйте
BindingList<T>
в качестве основной коллекции не работает, так как он не поддерживает сортировку и фильтрацию. - Обтекание некоторой коллекции с помощью
BindingSource
не помогает, если базовая коллекция не поддерживает сортировку и фильтрацию. - Написать заказ, который реализует
IBindingListView
. Это выглядит довольно сложно, и мне нужно только подмножество функций, которые предоставляетIBindingListView
. И я слишком ленив. - Используйте
BindingListView
sourceforge project. Это, вероятно, слишком тяжело для того, что мне нужно, и я не хочу полагаться на сторонние библиотеки, если мне это не нужно.
Что было бы простым и быстрым решением для этого?