DataGridViewComboBoxColumn
에 클래스 개체 목록을 채우려고합니다 (ToString
오버로드). 이 방법은 일반 콤보 상자에서 완벽하게 작동합니다. 그러나 일단 DataGridViewComboBoxColumn
을 dataGridView
에로드하면 DataGrid에서 클릭 할 때마다 오류가 발생합니다.DataGridViewComboBoxColumn을 사용하여 클래스 개체 목록을 표시 할 수 있습니까?
다음은 오류입니다.
이DataTable dt = new DataTable();
List<mclass> MObjects = new List<mclass>();
DataGridViewComboBoxColumn objcolumn = new DataGridViewComboBoxColumn();
objcolumn.DataSource = MObjects;
objcolumn.ValueType = typeof(mclass);
dataGridView1.DataSource = dt;
dataGridView1.Columns.Add(objcolumn);
지금 오류 메시지 사이에, 열이 잘 작동 :
The Following Exception Occurred in the DataGridView:
System.ArgumentException: DataGridViewComboBoxCell value is not valid.
To replace this default dialog please handle the DataError event.
는 그리고이 오류 대화 상자 이전에 실행되는 코드입니다. 리스트에서 오브젝트를 완벽하게 선택할 수 있습니다. 이 오류를 어떻게 해결하고 작동하는 콤보 열을 그대로 두십시오. 내가 놓친 게 있니? 아니면 그 오류 메시지를 제거하는 방법을 찾아야합니까?
dt.Columns.Add("OBJList", typeof(mclass));
그러나이 만들고, 더 이상 (I 요청에, 그것의 대부분을 사용할 수 생략했다) 같은 예외 :
The following exception occurred in the DataGridView:
System.FormatException: Invalid cast from 'System.String' to 'Namespace.mobject'. --->
System.InvalidCastException: Invalid cast from 'System.String' to 'Namespace.mobject'.
문제는 DropDown 인 ComboBoxStyle이 원인 일 수 있습니다. 즉, 텍스트가 편집 가능하다는 의미입니다. 텍스트를 편집 할 수 없음을 의미하는 스타일을 DropDownList로 변경해보십시오. – Mike
텍스트는 현재 편집 할 수 없습니다. 나는 당신이 기본적으로 제안한 것처럼 그것을 믿습니다. –
Curiouser와 Curiouser. 분명히 이것은 모든 데이터 유형, 심지어 문자열에 대한 ComboBoxColumn의 일반적인 문제입니다. –