c# System.ArgumentException:“设置 DataSource 属性后无法修改项集合。”
时间: 2024-09-22 10:02:08 浏览: 156
C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法
在 C# 中,当你尝试在设置了 `DataSource` 属性之后再更改 `Items` 集合时,会抛出 `System.ArgumentException` 错误,这是因为 DataSource 指定了数据源用于填充 ComboBox 控件的内容,一旦关联了一个数据源,`Items` 集合通常被视为只读,以便于保持数据的一致性和数据操作的正确性。如果要改变控件的展示内容,应该通过数据源的方式来进行,比如对数据集进行增删改查操作。
如果你确实需要替换整个列表,可以先解绑 DataSource,然后清除 Items,最后重新设置 DataSource:
```csharp
// 解绑 DataSource
comboBox1.DataSource = null;
// 清空 Items
comboBox1.Items.Clear();
// 重新设置新的 DataSource
comboBox1.DataSource = yourNewDataSource;
```
这里 `yourNewDataSource` 应该是一个实现了 `ICollectionView` 接口的数据源(如 BindingList、DataSet 或 LINQ 查询等),它可以提供动态数据。
阅读全文