비슷한 문제가 있습니다. 첫 번째 탭 페이지에는 그리드가 있고 두 번째 탭 페이지에는 두 개의 동일한 바인딩 소스에 바인딩 된 텍스트 상자가 있습니다. 행 내용을 변경하고 그리드에서 내용이 변경되지만 행 시작은 변경되지 않습니다.
내 코드이었다
DataRow dataRow = ((DataRowView)bindingSource1.Current).Row;
if(dataRow.RowState != DataRowState.Modified)
나는 수정의 RowState이 예상.
누락 된 오류 코드 :
bindingSource1.EndEdit();
여기
전체 솔루션 :
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 0)
{
bindingSource1.EndEdit();
DataRow dataRow = ((DataRowView)bindingSource1.Current).Row;
if(dataRow.RowState != DataRowState.Modified)
{
return;
}
DialogResult userOption = MessageBox.Show("Save?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (userOption == System.Windows.Forms.DialogResult.Yes)
{
Save();
}
}
}
내 솔루션 : 나는 하나 개의 형태로 비슷한 상황으로 실행하고 나는 그 문제가 깨달았다
업데이트를 답변으로 게시 한 다음 허용 대답으로 표시하십시오. – cadrell0