GridControl WPF 행 상태 문제 편집 후 데이터를 저장하는 방법
많은 실패를 경험하면서 주의가 필요한 부분을 발견했습니다.
Microsoft의 DataAdapter의 Update 저장 방법은 DataSet이나 DataTable에 저장된 데이터를 저장하는 방법만 설명하고 있지만, GridControl이 데이터를 편집한 후 DataTable에 업데이트할 수 있다면 문제가 발생합니다. 이로 인해 프로그램은 필드가 비어 있음을 나타내는 오류 메시지를 보고하게 됩니다. GridControl 편집 상태에서 GridColumn은 자동으로 상태를 BeginEdit으로 설정하고 Enter 키를 누르면 편집 EndEdit이 자동으로 완료됩니다. 저장을 직접 클릭하고 업데이트 명령을 보내면 프롬프트 필드가 비어 있게 됩니다. 이 경우 데이터를 저장하기 전에 편집을 위해 현재 편집된 보기를 닫아야 합니다.
편집을 닫고 DataTablethis 업데이트
.gridView.CloseEditor();this
.gridView.UpdateCurrentRow();
다음 단계는 Microsoft의 사업입니다.
데이터 저장 if(ds.HasChanges()){
DataSetdsModify=this
.ds.GetChanges();if(dsModify!=null){ this
.adapter.Update(dsModify.Tables[0]);this
.ds.AcceptChanges();
MessageBox.Show(저장되었습니다. ,
팁
,MessageBoxButtons.OK,MessageBoxIcon.Information);}} 행을 구별하기 위해 일반적으로 표시할 행마다 배경색을 변경합니다. 데이터.
이것은 다른 모든 행의 배경색을 변경합니다.
.gridView.OptionsPrint.EnableAppearanceEvenRow=true;this
.gridView.OptionsPrint.EnableAppearanceOddRow=true;
데이터를 삭제합니다. 많은 사람들이 데이터 행을 선택하고 삭제하고 싶은데 행 번호를 가져올 수 없다고 묻습니다. 어떻게 해야 합니까? PB의 GetRow와 유사한 기능에 대해 생각해 본 적이 있습니까? 하하, Microsoft에는 그런 기능이 없고 GridControl에도 없는 것 같습니다(아는 영웅이 있으면 알려주세요). 우리는 이 문제를 해결해야 했습니다. Microsoft는 BindingSource 클래스와 BindingNavigate 클래스를 제공했습니다. BindingNavigate 클래스에는 현재 DataTable의 행 번호를 제공하는 Position 속성이 있습니다.
DataTablethis 바인딩
.bindSource1.DataSource=ds.Tables[table
].DefaultView;this
.bindingNavigator1.BindingSource = this
.bindSource1;this
.gridControl.DataSource=this
.bindSource1;
이 방법으로 간단히 GridControl을 사용하여 다음 작업을 수행할 수 있습니다. 데이터를 편집합니다.