我有一个代表可能配置的枚举。(以下只是一个例子......)
public enum ConfigurationType {
[Description("Minimal Configuration")]
Minimal = 0,
[Description("Standard Configuration")]
Standard,
[Description("Premium Configuration")]
Premium
}
现在,我正在使用值转换器(在此处ConfigurationType
找到)将我的类中的类型属性绑定到 ComboBox以显示描述。这很好用。然而,我想做的是能够动态禁用特定枚举成员的选择,结果是它们不会出现在组合框中。
我曾尝试将此枚举转换为标志枚举,然后绑定到一组标志,但并没有走得太远。关于那个或其他建议的任何指示?
编辑 - 标志示例
尝试使用标志时,我将枚举更改为:
[Flags]
public enum ConfigurationType {
[Description("Minimal Configuration")]
Minimal = 1 << 0,
[Description("Standard Configuration")]
Standard = 1 << 1,
[Description("Premium Configuration")]
Premium = 1 << 2
}
public ConfigurationType AvailableConfigs = ConfigurationType.Standard | ConfigurationType.Premium;
它实际上适用于能够将这些按位或列表分配给诸如 AvailableConfigs 的变量(如上所示),但是值转换器部分是挂断。我不确定如何实现一个值转换器来获取 AvailableConfigs 中存在的每个标志的描述,并能够转换回一个变量(也是 ConfigurationType),例如 SelectedConfiguration。SelectedConfiguration 的设置器当然会一次只强制执行一个标志。