2015-02-02 9 views
0

я окно свойств по умолчанию выглядит следующим: Пользовательский вид для PropertyGrid редактор массива

Можно ли как-то изменить это мнение?

Например, я хочу показать значение свойства Template.Name и Template.Description вместо [index массива] и namespase.

Возможны ли какие-либо возможности?

+1

Вы можете переопределить ToString: PropertyGrid использует этот метод, чтобы получить текст, который будет отображаться в качестве значения каждого элемента. –

+1

Что-то вроде этого? http://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert – Mino

ответ

1

думаю, попробуйте наследовать класс CollectionConverter и переопределить способ ConvertTo. А затем назначьте новый класс настраиваемого конвертера в качестве атрибута: TypeConverter.

internal class TemplateArrayConverter : CollectionConverter 
{ 
    public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destType) 
    { 
     if (destType == typeof(String) && value is OutlookAddIn_MailHelper.Template[]) 
     { 
      OutlookAddIn_MailHelper.Template[] templates = (OutlookAddIn_MailHelper.Template[])value; 
      if (templates.Length > 0) 
      { 
       return String.Format("Total Template: {0}", templates.Length); 
      } 
     } 

     return "None"; 
    } 
} 

О свойстве:

[TypeConverter(typeof(TemplateArrayConverter))] 
public OutlookAddIn_MailHelper.Template[] Templates { get; set;} 

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

  • Нет связанных вопросов^_^