0

使用此代码:

comboBoxCurrently.DataSource = PlatypusData.getCurrentlyVals();
comboBoxCurrently.Items.Remove("Surrounded by purplish-blue Penguins");

...我得到,“ System.ArgumentException 未处理 Message=Items 集合在设置 DataSource 属性时无法修改。

我不想限制我稍后从查询中删除的值(...WHERE bla <> 'Surrounded...),因为有时该值允许的(显示历史数据),而我不' t 真的希望在getCurrentlyVals()中有一个条件语句,它使用一个查询语句或另一个(如果有更好的方法来做到这一点)。

有任何想法吗?

更新

好的,这有效:

List<string> intermediateList = PlatypusData.getCurrentlyVals();
intermediateList.Remove("Surrounded by purplish-blue Penguins");
comboBoxCurrently.DataSource = intermediateList;

再次更新

我将其更改为 Lars 的方式:

comboBoxCurrently.Items.AddRange(PlatypusData.getCurrentlyVals().ToArray());
comboBoxCurrently.Items.Remove("Surrounded by purplish-blue Penguins");

...而且我认为这一页包含的字符串“被紫蓝色企鹅包围”的实例比人类历史上的任何一页都多,无论是过去还是未来。

4

2 回答 2

2

将 comboBoxCurrently.DataSource 绑定到公共属性

例如

Public ObservableCollection<string> AnimalList { get; set; }

在 Ctor AnimalList = PlatypusData.getCurrentlyVals();

然后 AnimalList.Remove("被紫蓝色企鹅包围");

于 2012-07-25T20:38:39.980 回答
1

您必须从 DataSource 修改集合,但您似乎反对这样做,因此在这种情况下,不要使用 DataSource,而是尝试将项目直接添加到 ComboBox:

comboBoxCurrently.Items.AddRange(PlatypusData.getCurrentlyVals().ToArray());
comboBoxCurrently.Items.Remove("Surrounded by purplish-blue Penguins");
于 2012-07-25T20:58:07.083 回答