Вот такой вот несколько архаичный вопрос — к BindingSource подключен List<MyType>, а сам BindingSource отображается через DataGridView. Надо сделать стандартный CRUD над этим списком с минимумом кода. Что-то примеры в мнете какие-то мутные и все ведут через доп. кнопки и формы. А надо обойтись только одним гридом, без кнопок и форм. Кто что может подсказать?
Здравствуйте, Northrop, Вы писали:
N>Вот такой вот несколько архаичный вопрос — к BindingSource подключен List<MyType>, а сам BindingSource отображается через DataGridView. Надо сделать стандартный CRUD над этим списком с минимумом кода. Что-то примеры в мнете какие-то мутные и все ведут через доп. кнопки и формы. А надо обойтись только одним гридом, без кнопок и форм. Кто что может подсказать?
Можете посмотреть у telerik'а
тут, правда он платный.
Здравствуйте, Northrop, Вы писали:
N>Вот такой вот несколько архаичный вопрос...
Мне кажется, ты выбрал не совсем удачное решение...
MS рекомендует для такого сценария использовать не List<T>, а BindingList<T>.
Про разницу между этими классами можно посмотреть
здесь (замечательная статья, кстати)Автор(ы): Сергей Тепляков
Дата: 28.12.2008
Основная задача приложений Windows Forms – манипулирование данными. В определенный момент времени приложение получает данные из некоторого источника, отображает их пользователю, пользователь изменяет данные, затем измененные данные помещаются в источник (в тот же самый или иной). В некоторых приложениях может не быть некоторых из вышеперечисленных этапов, но в целом эта картина характерна для большинства приложений.
В приложении, работающем с данными, существует логическая взаимосвязь между уровнем данных и представлением, хотим мы этого или нет. Вопрос в том, сколько рутинной работы ложится на ваши плечи. Механизм привязки данных в Windows Forms в значительной степени упрощает создание приложений, работающих с данными. Понимание основных концепций, на которых строится привязка данных, может в значительной степени упростить построение таких приложений, а также помочь в решении различных проблем, которые неизменно преследуют каждого разработчика.
,
здесь,
здесь и вообще много где еще.
Ну или, если уж твой код получает List<T> извне и ты ничего не можешь с этим поделать, то может обертку написать?
Класс, который будет реализовывать интерфейс IBindingList.
Хотя, я, в свое время, с этими BindingList-ами помудохался и вернулся к классическому DataSet-у.
Ну а чего? Раз уж WinForms в целом считается архаичной технологией, то почему бы и архаичный же инструмент для работы с данными не использовать?
Ну только DataSet надо использовать типизированный.
Я даже для себя на T4 кодогенератор типизированных DataSet-ов сварганил на основе схемы в XML-формате.
Пользуюсь и не жужжу
PS. Кстати, по поводу архаичности. Если инструмент полностью решает стоящие задачи и он проще, чем новые, стильные, модные, молодежные и с розовенькими бантиками, то почему бы его не использовать?
Красота — наивысшая степень целесообразности. (c) И. Ефремов