使用按位枚举的WinForm TokenEdit控件([Flags])

时间:2015-05-07 09:40:31

标签: c# devexpress devexpress-windows-ui

如何使用带有按位枚举的DevExpress TokenEdit控件?

(我无法找到关于此案例的任何全面的简短文档。有点here和一些there。)

1 个答案:

答案 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控件将按位值分成两部分并显示两个分隔的标记。