Как использовать DevExpress TokenEdit
Управление с поразрядным перечислением?WinForm TokenEdit управление с побитовым Enum ([Флаги])
(я не смог найти какой-либо комплексную короткую документацию по данному делу. Немного here и некоторые there.)
Как использовать DevExpress TokenEdit
Управление с поразрядным перечислением?WinForm TokenEdit управление с побитовым Enum ([Флаги])
(я не смог найти какой-либо комплексную короткую документацию по данному делу. Немного here и некоторые there.)
Определим перечисление
[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
будет разделить значение побитовое пополам и показать два разделенных лексемы.