.Net: DataGridView отвечает на IBinding.ListChanged, но не обрабатывает событие CellValueChanged - PullRequest
2 голосов
/ 19 августа 2010

У меня есть собственный список IBinding, который вызывает событие ListChanged.Я хотел бы перекрасить строку Datagridview после события ListChanged.

Datagridview отвечает на событие ListChanged и изменяет значение ячейки, но событие CellValueChanged никогда не запускается.

Какое событие Datagridview отражает событие ListChanged?

Класс CustomList: IBinding

Public Sub UpdateList(Byval index as Integer)
     List(index).Active = true
     RaiseEvent ListChanged(Me, _
        New System.ComponentModel.ListChangedEventArgs _
        (System.ComponentModel.ListChangedType.ItemChanged, index))
End Sub

Класс CustomDataGridView: DataGridView

Private Sub Grid_CellValueChanged(ByVal sender As Object, _
            ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
            Handles Me.CellValueChanged
     ColorRow(Rows(e.RowIndex)) ''//NeverFires
End Sub

Класс: Форма

Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
                Handles Me.Load

        Dim customList As New CustomList()
        customList.add(new CustomItem())
        dgv.DataSource = customList
        customList.UpdateList(0) ''//DatagridView updates but no event is raised

End Sub

Обновление:

Событие CellValueChanged вызывается только тогда, когда новоезначение передается от DGV к DT.Не наоборот.

- Vivek 5 апреля в 18: 52

1 Ответ

0 голосов
/ 22 августа 2010

Изменение цвета фона ячеек должно быть сделано в RowPrePaint-Event, оно будет запущено, если строка будет перекрашена после изменения значения.

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