본문 바로가기
C#/Winform

C# / Winform DataGridView에 데이터 삭제하는 메서드

by HyunS_ 2019. 11. 10.

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

댓글