![](/img/trans.png)
[英]How to remove selected items from ListBox when a DataSource is assigned to it in C#?
[英]How to remove an Item from a combobox when a datasource is assigned to an enum?
將數據源分配給枚舉時,如何從組合框中刪除項目?
嘗試通過Items.Remove
刪除時,收到錯誤消息:
設置DataSource屬性后,將無法修改項目集合。
有什么建議嗎?
注意:我會繼續使用該枚舉,因為我在代碼中的很多地方都處理過該枚舉。
編碼:
public enum DefaultValueType
{
None = 0,
Static = 1,
Query = 2
}
cBoxDefaultType.DataSource = Enum.GetValues(typeof(DefaultValueType));
在一種情況下,我想從組合框的選項中刪除“查詢”項。
cBoxDefaultType.Items.RemoveAt(2); // Throw exception
我通過過濾Enumeration數組找到了解決方案:
Enum.GetValues(typeof(DefaultValueType))
.Cast<DefaultValueType>()
.Where(p => p != DefaultValueType.Query)
.ToArray<DefaultValueType>()
您需要從DataSource
刪除項目並重新綁定,或者只使用不帶DataSource
.Items
在您的情況下,您需要將Enum轉換為array,然后使用它。
同樣對於.NET 2.0(從枚舉“ SomeEnum”中刪除“無效”項):
comboBox1.DataSource = Array.FindAll((SomeEnum[])Enum.GetValues(typeof(SomeEnum)),
(SomeEnum SM) => { return SM != SomeEnum.Invalid; });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.