У меня есть служба, которая устанавливает для атрибута ReadOnly свойства значение true/false во время выполнения, поэтому пользователь не сможет изменить значение свойства в propertyGrid.
Сервис полезен, когда свойство редактируется в текстовом редакторе. Однако некоторые из моих редакторов являются выпадающими списками. Я хочу, чтобы раскрывающийся список был отключен, когда я устанавливаю свойство только для чтения, то есть пользователь сможет видеть выбранный элемент в поле со списком, но когда он щелкает стрелку рядом с полем со списком, чтобы увидеть параметры, ничего не произойдет. это не работает с текущей реализацией. Думаю, мне нужно использовать другой атрибут для свойства. Я пытался изменить "EditableAttribute" свойства, но это не работает.... Код, который я использую для изменения свойства только для чтения:
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(obj)[property];
ReadOnlyAttribute attribute = (ReadOnlyAttribute)descriptor.Attributes[typeof(ReadOnlyAttribute)];
FieldInfo fieldInfo = attribute.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);
fieldInfo.SetValue(attribute, value);
Есть идеи?
IsEnabled
Combobox
в поле зрения. - person Gopichandar   schedule 24.03.2016