2010-12-14 3 views
1

У меня есть класс, который я задал как исходный объект для сетки свойств. Значения поступают из списка значений:AutoComplete для поля сетки свойств

class Person 
{ 
    ... 

    [TypeConverter(NationalityStringConverter)] 
    public string Nationality 
    ... 

class NationalityStringConverter: StringConverter 
{ 
    public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
    { 
     return true; 
    } 

    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 
    { 
     return true; 
    } 

    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 
    { 
     // return my value collection 

Теперь мой вопрос. Это можно сделать списком предложений. Точно так же вы должны установить его в ComboBox, как:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 

Thx 4 ответов

ответ

0

Просто попробуйте получить доступ к элементу управления ComboBox, который добавляется в сетке свойств. я не знаю, если это возможно, но стоит попробовать;)

0

При создании пользовательского UITypeEditor вы должны иметь возможность переопределить поведение и создать свой собственный ListBox, который можно отобразить, когда EditValue вызывается с помощью IWindowsFormsEditorService .DropDownControl. Это может дать вам доступ к нужному элементу управления.

В PropertyGrid также есть событие ControlAdded, вы можете использовать его для доступа к списку, который он создает для редактирования.

Я сейчас борюсь с PropertyGrid, поэтому я не уверен, дает ли какой-либо из этих вариантов то, что вам нужно, но это может помочь.

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