Re[4]: Modifiers в PropertyGrid
От: minchenkov  
Дата: 27.08.07 06:40
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Во-первых, перегрузи TypeDescriptor.GetStandardValuesSupported(…)

_FR>Во-вторых , таких свойств, как
_FR>
M>>        // перекрываю свойство Converter 
M>>        public override TypeConverter Converter 
M>>        { 
M>>            get
M>>            {
M>>                return new ModifiersTypeConverter(m_PropDesc);
M>>            }
M>>        }
_FR>

_FR>быть не должно: добавь readonly-поле типа TypeConverter к классу и инициализируй его в конструкторе и возвращай из свойства.

Доброе утро, что то опять не выкидывается список модификаторво доступа. Только одно значение, а не список.
Что я сделал:
1)Перекрыл метод TypeDescriptor.GetStandardValuesSupported(…):

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


2) Объявил поле readonly, инициализировал в конструкторе и возвратил:


    /// <summary>
    /// Класс, возвращающий свойство Modifiers
    /// </summary>
    public class ModifiersPropertyDescriptor : PropertyDescriptor
    {
        // свойство, которое будет отображаться
        PropertyDescriptor m_PropDesc;

        readonly ModifiersTypeConverter mtc;

        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="PropDesc"></param>
        public ModifiersPropertyDescriptor(PropertyDescriptor PropDesc) : base(PropDesc)
        {
            m_PropDesc = PropDesc;
            mtc = new ModifiersTypeConverter();
        }

        #region PropertyDescriptor Overrided Members

        // перекрываю свойство Converter 
        public override TypeConverter Converter 
        { 
            get
            {
                return mtc;
                //return new ModifiersTypeConverter(m_PropDesc);
            }
        }
                ....
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.