具有按位枚举([标志])的 WinForm TokenEdit 控件
WinForm TokenEdit control with bitwise Enum ([Flags])
如何使用 DevExpress TokenEdit
带按位枚举的控件?
让我们定义枚举
[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 开始)它可以自动处理按位枚举。比方说,在你的 Control/Form 中你有一个 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
控件会将按位值一分为二并显示两个分开的标记。
如何使用 DevExpress TokenEdit
带按位枚举的控件?
让我们定义枚举
[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 开始)它可以自动处理按位枚举。比方说,在你的 Control/Form 中你有一个 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
控件会将按位值一分为二并显示两个分开的标记。