2

私はこの問題に数時間苦労しています。

これが起こることです:

List<Entity>フォームが読み込まれると、データソースが空の DataGridView があります。

DataGridView.Datasource = null;
DataGridView.Datasource = entity_list;

まず、DataGridView を更新するために null に設定します。

次に、そのリストにエンティティを追加して、エンティティを追加するたびにコードが実行されるようにします。

私が得る問題は、リストにエンティティを 1 つ追加して DataSource を更新した後IndexOutOfRangeException、DataGridView をクリックしたときにエラーが発生したことです。かなり変です。

4

1 に答える 1

3

そのリストにエンティティを追加できるため、問題が発生します。何らかの理由で、DataSource が空のリストである場合、エンティティを 1 つ追加しようとすると、この例外が表示されます。

したがって、私が使用した解決策は、リスト バインディングを実行する前に、そのリストに少なくとも 1 つのエンティティがあるかどうかを確認することです。

DataGridView.DataSource = null;
if (entity_list.Count() > 0)
    {
        DataGridView.DataSource = entity_list;
    }

以上です!解決しました!BindingLists を使用することで問題を解決できると読みましたが、私のように List を使用している場合は、これが役に立てば幸いです。

于 2013-03-01T15:01:02.457 に答える