0

グループ内のメンバーのリストを含むDataGridViewを含むWinFormがあります。フォームには、新しいメンバーを追加したり、現在のメンバーの役割を変更したりするための機能(bindingNavigator)が含まれています。メンバーを並べ替えて、 SortedBindingListをミックスに導入することでこれを実装できるようにしたいと思います。ただし、これには、チームに新しいメンバーを追加する機能を拒否するという不幸な影響があります。次の例外が発生します。

System.InvalidOperationExceptionが発生しました

Message="アイテムを読み取り専用または固定サイズのリストに追加することはできません。"

エラーは理解できますが、これを回避する方法はありますか、それともリストを並べ替える他の方法を見つける必要がありますか?

4

1 に答える 1

4

私はBinding List Viewを使用して多くの幸運に恵まれました。オブジェクトを Generic リストに保持し、DataSource を次のように設定します。

public void BindGenericList<T>(List<T> list)
{
    DataSource = new BindingListView<T>(list);
}

実際のオブジェクトをリストから戻すのは、次のように簡単です。

public void GetObjectFromRow<T>(int rowIndex)
{
    BindingListView<T> bindingListView = DataSource as BindingListView<T>;

    return (null != bindingListView) ? bindingListView[rowIndex].Object : default(T);
}

BLV を使用した並べ替えは、実際には DataView を使用するよりも高速です

于 2009-02-12T18:19:45.887 に答える