2016-02-04 5 views
0

У меня есть следующий код, который отображает выпадающий список выбираемых элементов в свойствах, который обычно отлично работает. Однако выпадающее меню позволяет редактировать элементы в раскрывающемся списке, что вызывает ошибку в «System.ComponentModel.EnumConverter.ConvertFrom» как недействительное перечисление. Например, Option1 можно изменить на OptionABC1, который я хочу предотвратить.Запретить редактирование элементов в раскрывающемся элементе propertygrid

В PropertyStoreItem есть флаг, чтобы установить его только для чтения, но это предотвращает изменение всего свойства, а не предотвращает редактирование выпадающих элементов.

Как сделать выпадающее меню недоступным для редактирования, но все же разрешить выбор фиксированного списка? Это может быть свойство свойства, которое мне нужно изменить, но не могу найти его.

[Flags] 
Public Enum SomePropertyTypes 
{ 
    Option1 = 1, 
    Option2 = 2, 
    Option3 = 4, 
    Option4 = 8, 
    Option5 = 16, 
    Option6 = 32 
} 

public partial class AddSomePropertyForm : RadForm 
{ 
    private RadPropertyStore store; 

    Public AddSomePropertyForm() 
    { 
     InitializeComponent(); 
     this.store = this.CreatePropertyStore(); 
     this.radPropertyGrid1.SelectedObject = store; 
    } 

    private RadPropertyStore CreatePropertyStore() 
    { 
     RadPropertyStore somePropertyStore = new RadPropertyStore(); 
     PropertyStoreItem somePropertyType = new PropertyStoreItem(typeof(SomePropertyTypes), "PropertyName", SomePropertyTypes.Option1, "Property Info", "Group1", false); 
     somePropertyStore.Add(somePropertyType); 
     return somePropertyStore; 
    } 
} 

ответ

1

Вы должны настроить выпадающее поведение редактора, используя событие EditorInitialized.

void radPropertyGrid1_EditorInitialized(object sender, PropertyGridItemEditorInitializedEventArgs e) 
    { 
     PropertyGridDropDownListEditor editor = e.Editor as PropertyGridDropDownListEditor; 
     if (editor != null) 
     { 
      editor.DropDownStyle = RadDropDownStyle.DropDownList; 
     } 
    } 

Вот статья по этому вопросу: link

+0

Отлично, спасибо. – pathDongle

0

Установите выпадающий»DropDownStyle свойство для ComboBoxStyle.DropDownList - это звучит, что это в настоящее время устанавливается на ComboBoxStyle.DropDown, который позволяет редактировать.

См ComboBoxStyle Enumeration

+0

Как установить это внутри PropertyGrid? – pathDongle

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