我有以下代码显示属性网格中可选项的下拉列表,通常可以正常工作。但是,下拉列表允许编辑下拉列表中的项目,这会导致“System.ComponentModel.EnumConverter.ConvertFrom”上的错误,因为它不是有效的枚举。例如,Option1
可以更改为我想要阻止的OptionABC1
。
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;
}
}
答案 0 :(得分:1)
您应该使用EditorInitialized事件自定义下拉编辑器行为。
void radPropertyGrid1_EditorInitialized(object sender, PropertyGridItemEditorInitializedEventArgs e)
{
PropertyGridDropDownListEditor editor = e.Editor as PropertyGridDropDownListEditor;
if (editor != null)
{
editor.DropDownStyle = RadDropDownStyle.DropDownList;
}
}
以下是关于此事的文章:link
答案 1 :(得分:0)
设置组合框' DropDownStyle
属性为ComboBoxStyle.DropDownList
- 它的声音当前设置为ComboBoxStyle.DropDown
,允许进行编辑。