0

我有一个 WinForm,其中包含一个 DataGridView 和一个组中的成员列表。该表单包含用于添加新成员和更改当前成员角色的功能 (bindingNavigator)。我希望能够对成员进行排序并通过在组合中引入SortedBindingList来实现这一点。然而,不幸的是,这使我无法向团队添加新成员。我得到以下异常:

System.InvalidOperationException 发生

Message="无法将项目添加到只读或固定大小的列表中。"

我理解这个错误,但有什么办法可以解决这个问题,还是我必须找到其他方法来对列表进行排序?

4

1 回答 1

4

使用Binding List View我很幸运。只需将您的对象保存在通用列表中,然后像这样设置 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 回答