The string "(Collection)" is coming from the TypeConverter on that property, which is CollectionConverter. You can modify the string as shown here:
[ TypeConverter( typeof( CustomCollectionConverter ) ]
public class CustomCollection : SomeBaseCollection
{
// ...
}
internal class CustomCollectionConverter : CollectionConverter
{
public override object ConvertTo( ITypeDescriptorContext context,
CultureInfo culture, object value, Type destinationType )
{
if ( destinationType == typeof( string ) && value is ICollection )
return "Custom collection"; // any text you like
return base.ConvertTo(context, culture, value, destinationType);
}
}
Shawn Burke, Microsoft