枚举 - 组合框与一个项目绑定作为例外

时间:2013-01-30 06:13:11

标签: c# wpf visual-studio-2010

我有Enum我绑定ComboBox 但我不想在组合框项目中显示一个枚举值 如果我尝试在绑定后删除它会抛出错误。

cmbDisplayUnit.Items.Remove(item);

是否可以绑定到枚举并仍然删除或至少隐藏Enum的一个值?

3 个答案:

答案 0 :(得分:1)

如果你看一下这个MSDN Forum article,它会举例说明如何做你想要的。见Sorrocco的答案。

从上面的链接修改:

string[] TestNames = Enum.GetNames(typeof(SampleEnumUnits));
var list = from test in TestNames where test != "Enum you wish to remove" select Enum.Parse(typeof(SampleEnumUnits), test);
cmbDisplayUnit.ItemsSource = list;

答案 1 :(得分:0)

我认为你需要这个:

cmbDisplayUnit.Items.Remove((int)item); // I assume item is enum variable

答案 2 :(得分:0)

var items = Enum.GetValues(typeof(datMHD.Enums.EquipmentEnums.Request_ItemType));
var List = items.OfType<datMHD.Enums.EquipmentEnums.Request_ItemType>().ToList();
List.RemoveAll(e => e.Equals(datMHD.Enums.EquipmentEnums.Request_ItemType.Spare_Parts));

您将Array值转换为List然后使用RemoveAll,然后将Item分配给组合框