Работа с перечислением.

Есть перечисление, в нем есть два значения - Значение1 и Значение2. Есть компонент EnumDataControl, который отображает эти значения. Как сделать, чтобы при определенных условиях в выпадающем списке EnumDataControl-а отображалось только одно из значений перечисления?

Нравится

7 комментариев

Добрый день!

Либо записать значение в поле, и сделать его неактивным.

Либо вместо перечисления воспользоваться справочником и использовать метод OnPrepareSelectWindow.

Справочник подразумевает создание таблицы, в которой будет только два значения...
Изначально поле должно быть пустым, значит записывать туда ничего нельзя...
По другому никак?

можно попробовать удалять "лишние" элементы из перечисления

var Enum = YourEnumDataControl.DataField.Enum;
var EnumItem = Enum.ItemsByCode('NeededCode');
if (EnumItem) {
	Enum.Remove(EnumItem);
}	

аналогично добавлять нужные (см SDK)...

код работает, при повторном проходе удаленное значение не находит, но в выпадающем списке EnumDataControl-а удаленное значение всё равно присутствует...

тогда можно попробовать покопаться в направлении переназначать Enum для контрола, может быть попытаться использовать EnumControl (без Data) и написать обработчики для его заполнения и сохранения выбранного значения
а в целом, если задача стоит просто быстро решить задачу - справочник вместо enum, как уже говорилось:smile:

а что, в версии 3.0.2.244 методы Enum.Add(EnumItem) и Enum.CreateItem() не поддерживаются?

Для 3.0.2 проверьте отладчиком.

Показать все комментарии