DataGridView только для чтения и IEditableObject - PullRequest
3 голосов
/ 11 ноября 2008

Добрый вечер

У меня небольшая проблема с моим DataGridView в проекте .NET Windows Forms. Сетка доступна только для чтения и привязана к сортируемой BindingList<T>, которая содержит настраиваемые бизнес-объекты. Мой класс бизнес-объектов реализует IEditableObject.

Теперь методы BeginEdit и EndEdit вызываются все время при навигации по сетке. Есть ли способ предотвратить сетку или источник привязки от этого? Он явно настроен только для чтения (ReadOnly = true), поэтому нет никаких причин (нет, давайте осторожно скажем, что я ничего не вижу) вызывать эти методы снова и снова.

Спасибо, что прочитали:)

Matthias

1 Ответ

2 голосов
/ 11 ноября 2008

После воспроизведения вашей проблемы кажется, что DataGridView вызывает цепочку методов / событий, которые заканчиваются вызовом вашего события IEditableObject, независимо от того, что ...

Это происходит, когда вы устанавливаете свой BindingList на DataGridView.DataSource и когда вы перемещаетесь по Grid.

Независимо от режима редактирования, который я выбрал для DataGridView, код будет добавлен в метод IEditableObject.EndEdit () BusinessObjects.

Кажется, это старая ошибка фреймворка ... Я нашел это Отчет об ошибке .

Этот отчет об ошибке очень старый. Я не уверен на 100%, если это все еще проблема ... возможно, уже есть какое-то свойство для решения этой проблемы.

Есть мысли?

...