DataGridView에 데이터 삭제하는 메서드 입니다
삭제 시 데이터소스를 null로 변경 후
다시 새로운 데이터 소스를 삽입합니다.
그래야 삭제 시 에러 발생 안됨
혹은 e.Cancel = true로 설정하는데 이 항목은 테스트 안해봤음
#region mainDeleteButton_Click(sender, e)
/// <summary>
/// 삭제 버튼 클릭시 동작합니다.
/// </summary>
/// <param name="sender">이벤트 발생자 입니다.</param>
/// <param name="e">이벤트 인자 입니다.</param>
private void mainDeleteButton_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in this.mainGridView.SelectedRows)
{
MainModel focusItem = row.DataBoundItem as MainModel;
if(focusItem == null)
{
MessageBox.Show("삭제할 항목이 없습니다.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("해당 항목을 삭제하시겠습니까?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
{
return;
}
try
{
SetMainDataGridView(null);
QueryHelper.DeleteItem(focusItem.ID);
//this.sourceList.Remove(focusItem);
SetMainDataGridView(this.sourceList);
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
finally
{
SetEditMode(EditMode.Normal);
UpdateMainControlData(focusItem);
}
}
}
#endregion
728x90
'C# > Winform' 카테고리의 다른 글
C# / SQLITE 파라미터 이름 중에 CREATEDATE1 과 같이 영어와 숫자 같이 있을 때 문제점 (0) | 2019.11.12 |
---|---|
C# / SQLITE Database is not open 에러 발생했을 때 해결 방법 (0) | 2019.11.11 |
C# / Winform DataGridView에서 선택한 행의 객체 가져오기 (0) | 2019.11.10 |
C# / Winform 프로그레스바(Progress Bar) 입니다. (1) | 2019.10.27 |
C# / Winform 폴더 브라우저 출력하기 입니다. (0) | 2019.07.11 |
댓글