DataGridView со списком пользовательских объектов создает исключение NotImplementedException при редактировании - PullRequest
0 голосов
/ 13 апреля 2010

Я создаю приложение WinForms с несколькими пользовательскими бизнес-объектами. Я связываю Список объектов одного типа с DataGridView с помощью BindingList и реализую IEditableObject для моего объекта, но при попытке изменить значения в DataGridView я получаю следующее исключение:


В DataGridView произошло следующее исключение:

System.NotImplementedException: метод или операция не реализованы. - в System.ComponentModel.ReflectPropertyDescriptor.SetValue (компонент объекта, значение объекта) - в System.Windows.Forms.DataGridView.DataGridViewDataConnection.PushValue (Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex, значение объекта)

Чтобы заменить это диалоговое окно по умолчанию, обработайте событие DataError.

Я уверен, что что-то упустил, но я не знаю, что это ...

Заранее спасибо -

Ответы [ 2 ]

0 голосов
/ 15 апреля 2010

Ну, видимо, я не очень наблюдательный ...

Проблема заключалась в том, что ReSharper реализовал мои свойства с NotImplementedException, поэтому, когда я редактировал это свойство через DataGridView, он генерировал это исключение.

Спасибо, извините, что потратил ваше (и мое!) Время.

0 голосов
/ 13 апреля 2010

Сообщение об ошибке сообщает вам все, что вам нужно знать - вам нужно обработать событие DataError вашего DataGridView.

На странице MSDN, на которую я ссылался выше, также есть ссылка на статью События потребления , которая также может быть полезна:

Чтобы использовать событие в приложении, Вы должны предоставить обработчик события ( метод обработки событий), который выполняет Программная логика в ответ на событие и зарегистрируйте обработчик событий с источник события. Этот процесс упоминается как проводка событий. визуальные дизайнеры для Windows Forms и Веб-формы обеспечивают быстрое применение инструменты разработки (RAD), которые упрощают или скрыть детали проводки события.

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