答案 0 :(得分:1)
让我们定义枚举
[Flags]
public enum BeverageInfoEnum
{
Water = 1 << 0,
HasAlcool = 1 << 1,
Wine = 1 << 2,
Soda = 1 << 3,
Warm = 1 << 4
}
此处必须使用[Flags]
属性。价值观可以混合。
DevExpress TokenEdit有一个新功能(从 14.2.4 开始),自动按位枚举处理。让我们说,在你的控制/表格中你有一个DevExpress.XtraEditors.TokenEdit tokenEditInfo
,你可以简单地说:
// can be set in designer mode
this.tokenEditInfo.Properties.EditValueType = DevExpress.XtraEditors.TokenEditValueType.Enum;
// this is were the magic happens
this.tokenEditInfo.Properties.Tokens.AddEnum(typeof(BeverageInfoEnum), true, true);
然后,您可以从中获取值(或者只在EditValue
上使用DataBinding):
var b = (BeverageInfoEnum)this.tokenEditInfo.EditValue
您将b
中的所有按位值汇总。如你所料。设置值时相同:
var b = BeverageInfoEnum.Water | BeverageInfoEnum.Warm;
(BeverageInfoEnum)this.tokenEditInfo.EditValue = b;
TokenEdit
控件将按位值分成两部分并显示两个分隔的标记。