2009-11-13 3 views
0

У меня есть меню DropDown с некоторыми элементами, которые должны быть доступны только после того, как пользователь что-то настроил. Я хотел использовать свойство Enabled, но в моем случае это невозможно.Как закрыть меню DropDown перед его открытием, если (что-то)

Итак, я думал о событии DropDownOpening. Я бы посмотрел if (IsConfigured == true), и если это ложь, я хочу остановить процесс открытия, чтобы меню DropDown не открывалось и не показывало элементы.

Как я мог это сделать?

спасибо.

ответ

0

Не зная о вашем конкретном прецеденте - и даже не являясь разработчиком .NET - это не звучит правильно на другом уровне.

Выпадающий список должен знать, активен он или нет. Попытка вмешаться в его внутреннюю операцию, которая, по-твоему, кажется, является ИМХО, - это, как правило, не очень хорошая идея, и, если это вообще возможно, взломать, что наверняка вызовет у вас проблемы в будущем.

Возможно, вы могли бы подробнее рассказать о том, почему вы считаете, что включение/отключение элемента управления в целом не работает для вас и решение для этого будет найдено.

+0

Проблема с включением/отключением заключается в том, что элементы находятся вне области видимости, где я что-то настраиваю. Я хотел бы передать все элементы в качестве аргументов несколько раз. – Procule

+0

К сожалению, я имел в виду «Мне нужно было пройти ...» – Procule

0

Почему вы не просто отключите правильные подпункты на DropDownOpening? Разве это не то, чего вы на самом деле хотите?

0

Я бы, вероятно, подключился к тому, что вам нужно было настроить ранее, чтобы включить выпадающее меню.

Итак, если вы ожидаете, что еще один снимок будет иметь выбранное значение; подключитесь к событию SelectedIndexChanged для первого раскрывающегося списка, а затем включите/отключите дополнительное раскрывающееся меню.

+0

В этом случае; как насчет привязки к странице.PreRender()? У вас может быть что-то вроде ddlDropDown1.Enabled = IsConfigured(); –

Смежные вопросы