Re: string[] & PropertyGrid
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 19.07.04 17:30
Оценка: 1 (1) +3
Здравствуйте, Николай Александрович Горинов, Вы писали:

НАГ>Есть PropertyGrid, помещаемый на форму. Также есть объект, скармливаемый этому гриду. У объекта есть проперти — массив string. Хочется вместо надписи "String[] Array" поместить свой текст. Например, список значений массива через запятую. Способ редактирования массива устраивает, отказываться от него и городить что-то свое не хочется.

НАГ>Как наименее извратно это сделать?

Написать свой TypeConverter, перекрыв стандартный и добавив специфическое преобразование в/из строки.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
string[] & PropertyGrid
От: Николай Александрович Горинов Россия  
Дата: 19.07.04 11:42
Оценка:
Доброго времени суток, All!

Есть PropertyGrid, помещаемый на форму. Также есть объект, скармливаемый этому гриду. У объекта есть проперти — массив string. Хочется вместо надписи "String[] Array" поместить свой текст. Например, список значений массива через запятую. Способ редактирования массива устраивает, отказываться от него и городить что-то свое не хочется.
Как наименее извратно это сделать?

С уважением, Николай.
Re[2]: string[] & PropertyGrid
От: Николай Александрович Горинов Россия  
Дата: 20.07.04 07:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Николай Александрович Горинов, Вы писали:


НАГ>>Есть PropertyGrid, помещаемый на форму. Также есть объект, скармливаемый этому гриду. У объекта есть проперти — массив string. Хочется вместо надписи "String[] Array" поместить свой текст. Например, список значений массива через запятую. Способ редактирования массива устраивает, отказываться от него и городить что-то свое не хочется.

НАГ>>Как наименее извратно это сделать?

AVK>Написать свой TypeConverter, перекрыв стандартный и добавив специфическое преобразование в/из строки.


У меня такое чувство, что тогда будет редактироваться объект как строка и стандартный редактор массивов использоваться не будет. Я прав?
Re[3]: string[] & PropertyGrid
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.07.04 08:13
Оценка:
Здравствуйте, Николай Александрович Горинов, Вы писали:

НАГ>У меня такое чувство, что тогда будет редактироваться объект как строка и стандартный редактор массивов использоваться не будет. Я прав?


Нет. Редактор задается не конвертером (точнее и конвертером тоже, но конвертером родительского класса и только если специально этого захочешь), а отдельным атрибутом, EditorAttribute.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[4]: string[] & PropertyGrid
От: Nikolaus Россия  
Дата: 20.07.04 08:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Николай Александрович Горинов, Вы писали:


НАГ>>У меня такое чувство, что тогда будет редактироваться объект как строка и стандартный редактор массивов использоваться не будет. Я прав?


AVK>Нет. Редактор задается не конвертером (точнее и конвертером тоже, но конвертером родительского класса и только если специально этого захочешь), а отдельным атрибутом, EditorAttribute.


А как определяется наличие раскрывающегося списка внутри PropertyGrid'a, в котором отображаются элементы массива?
Ведь AFAIK с помощью EditorAttribute задается редактор, запускаемый в отдельном окне или контроле.
Re[5]: string[] & PropertyGrid
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.07.04 09:30
Оценка:
Здравствуйте, Nikolaus, Вы писали:

N>А как определяется наличие раскрывающегося списка внутри PropertyGrid'a, в котором отображаются элементы массива?


GetProperties конвертера.

N>Ведь AFAIK с помощью EditorAttribute задается редактор, запускаемый в отдельном окне или контроле.


А что, с массивом строк не так?
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[6]: string[] & PropertyGrid
От: Nikolaus Россия  
Дата: 21.07.04 09:23
Оценка:
Здравствуйте, AndrewVK, Вы писали:

N>>А как определяется наличие раскрывающегося списка внутри PropertyGrid'a, в котором отображаются элементы массива?


AVK>GetProperties конвертера.


определил методы GetProperties и GetPropertiesSupported, но они даже не вызываются. В чем может быть проблема?
К строке приводится нормально.

Public Class StringArrayTypeConverter
    Inherits System.ComponentModel.TypeConverter

    Public Overloads Overrides Function CanConvertFrom(ByVal context As ITypeDescriptorContext, ByVal sourceType As 
          ...
    End Function

    Public Overloads Overrides Function ConvertFrom(ByVal context As ITypeDescriptorContext, ByVal culture As CultureInfo, ByVal value As Object) As Object
          ...
    End Function

    Public Overloads Overrides Function ConvertTo(ByVal context As ITypeDescriptorContext, ByVal culture As CultureInfo, ByVal value As Object, ByVal destinationType As Type) As Object
          ...
    End Function

    Public Overloads Function GetPropertiesSupported() As Boolean
        Return True
    End Function

    Public Overloads Function GetPropertiesSupported(ByVal ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Public Overloads Function GetProperties(ByVal Value As Object) As PropertyDescriptorCollection
            ...
    End Function
End Class
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.