Eu tenho um DataViewGrid I povoada a partir de um DataTable em uma consulta a um DB. Ao tentar capturar o evento Row_Leave, para que eu pudesse atualizá-lo corretamente, eu não consigo capturar o último valor em colunas boolean.
Se eu atualizar apenas um campo de texto, quando eu acessar o DataSource subjacente eu recebo o valor mais recente entrei, comprar se eu acessar o boolean, eu recebo o valor anterior.
Eu estou acessando as linhas como este:
if (allCorrect)
{
if (((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).IsNew)
{
this.InsertEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
else
{
this.UpdateEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
}
(Maneira bastante complicado para acessar a linha subjacente, mas funciona apenas como acessar a origem de dados do DGV, por isso não é o problema.)
Alguma ideia?
EDIT : eu reduzi a questão ao chamado caso adequado. Parece que RowLeave é chamado antes EndCellEdit e até mesmo CellValueChanged . Portanto, a linha nunca recebe a atualização de status (a ser atualizado no DB) e não fazê-lo. Posso alterar a ordem desses eventos (como para funcionar corretamente)? Eu descobri este é um problema conhecido que deveria mudar em Orcas, mas nunca o fez.