我的默认属性窗口如下所示:
是否有可能以某种方式改变这种观点?
例如,我想显示我的Template.Name属性值和Template.Description而不是[array index]和namespase。
有可能做到这一点吗?
答案 0 :(得分: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;}