У меня есть расширитель (IExtenderProvider), который расширяет определенные типы элементов управления дополнительными свойствами. Для одного из этих свойств я написал UITypeEditor. Пока все работает нормально.
У расширителя также есть несколько свойств, которые я пытаюсь использовать как своего рода значение по умолчанию для UITypeEditor. Я хочу иметь возможность установить свойство в самом расширителе (а не в расширенных элементах управления), и когда я открываю UITypeEditor для одного из дополнительных свойств расширенного элемента управления, я хочу установить значение в UITypeEditor к значению свойства в расширителе.
Простой пример: ExtenderProvider имеет свойство DefaultExtendedValue. В форме я установил для этого свойства значение «Мое значение». Расширенные элементы управления имеют через поставщика свойство ExtendedValue с UITypeEditor. Когда я открываю редактор для свойства ExtendedValue, значение по умолчанию (начальное) должно быть установлено на «Мое значение».
Мне кажется, что лучшим местом для этого будет UITypeEditor.EditValue, непосредственно перед вызовом IWindowsFormsEditorService.DropDownControl или .ShowDialog.
Единственная проблема заключается в том, что я не могу (или не обнаружил, как это сделать) получить сам поставщик расширителей в EditValue, чтобы прочитать значение рассматриваемого свойства и установить его в UITypeEditor. Контекст дает мне расширенный контроль, но в данном случае это бесполезно.
Есть ли способ добиться того, что я пытаюсь? Любая помощь приветствуется!
Спасибо Том
@samjudson: Это неплохая идея, но, к сожалению, до меня не доходит. Я бы очень хотел иметь возможность устанавливать это значение по умолчанию индивидуально для каждого экземпляра провайдера расширителя. (У меня может быть несколько в одной форме с разными значениями для разных групп расширенных элементов управления.)