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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举 - 组合框与一个项目绑定作为例外相关的知识,希望对你有一定的参考价值。

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

cmbDisplayUnit.Items.Remove(item);

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

答案

如果你看看这个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;
另一答案

我想你需要这个:

cmbDisplayUnit.Items.Remove((int)item); // I assume item is enum variable
另一答案
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分配给组合框

以上是关于枚举 - 组合框与一个项目绑定作为例外的主要内容,如果未能解决你的问题,请参考以下文章

UWP 组合框绑定到 SelectedItem 属性

如何组合绑定片段而不将它们包装在 XML 文字中

将枚举属性数据绑定到 WPF 中的组合框

将枚举属性数据绑定到 WPF 中的组合框

如何触发组合框项目源的重新加载

根据组合框选择更改文本框值