2

DataGridViewComboBoxColumnクラス オブジェクトのリスト ( With ToStringoverloaded )を入力しようとしています。この方法は、通常のコンボ ボックスでは完璧に機能しました。ただし、をロードすると、データグリッドからクリックするたびにエラーがスローDataGridViewComboBoxColumnされます。dataGridView

これがエラーです。

The Following Exception Occurred in the DataGridView:
System.ArgumentException: DataGridViewComboBoxCell value is not valid.
To replace this default dialog please handle the DataError event.

そして、これはエラー ダイアログの前に実行されるコードです。

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);

エラーメッセージの間で、列は正常に機能します。リストからオブジェクトを完全に選択できます。このエラーを解消して、作業中のコンボ列を安全に残すにはどうすればよいですか? 私は何かを逃したことがありますか?または、そのエラー メッセージを削除する方法を見つける必要がありますか?

いくつかの調査の後、この行に追加しようとしました:

dt.Columns.Add("OBJList", typeof(mclass));

ただし、これは同じ例外をはるかに長くします (要求に応じて利用できるように、ほとんどを省略しました)。

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'.
4

1 に答える 1

0

私はあなたがするValueType必要があると信じていますstring。部分はtypeof、おそらくあなたの内部で、値を抽出する方法でなければなりませんToString()

于 2013-04-29T13:37:32.583 に答える