2015-05-07 6 views

ответ

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) thant обрабатывает автоматически побитовые перечисления. Допустим, в вашем контроле/Сформировать у вас есть 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); 

Затем, вы можете получить значение из него (или просто использовать DataBinding на EditValue):

var b = (BeverageInfoEnum)this.tokenEditInfo.EditValue 

You Все значения побитового значения будут объединены в b. Как и ожидалось. То же самое при установке значения:

var b = BeverageInfoEnum.Water | BeverageInfoEnum.Warm; 
(BeverageInfoEnum)this.tokenEditInfo.EditValue = b; 

Контроль TokenEdit будет разделить значение побитовое пополам и показать два разделенных лексемы.