Автозаполнение для поля сетки свойств - PullRequest
1 голос
/ 14 декабря 2010

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

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 ответов

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

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

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

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

0 голосов
/ 16 декабря 2010

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

...