propertyGrid中List<>属性的显示问题

huang99103 2012-02-07 11:04:09
propertyGrid中的List属性对应一个“...”的按钮,而显示的是“(Collection)”;现在我想在list属性一栏不显示(collection),而是显示list的元素个数,请问如何实现?
...全文
714 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huang99103 2012-02-07
  • 打赏
  • 举报
回复
懂了,谢谢各位的帮助。
gomoku 2012-02-07
  • 打赏
  • 举报
回复
public Form1()
{
InitializeComponent();
this.propertyGrid1.SelectedObject = new My();
}

public class My
{
public My()
{
this.Names = new List<string>() { "hello", "nihao" };
}

[TypeConverter(typeof(MyTypeConverter))] //<---
public List<string> Names { get; private set; }

private class MyTypeConverter : TypeConverter
{
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(string) && value is List<string>)
{
return (value as List<string>).Count + " element(s)";
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
一切为了你 2012-02-07
  • 打赏
  • 举报
回复
list.Count
Dobzhansky 2012-02-07
  • 打赏
  • 举报
回复
一个属性在 propertyGrid 如何显示是由属性上的 attribute 控制的
相关的 attibute 有 TypeConverter, Editor.

如果只是显示为个数, 可以自己定制一个 TypeConverter 实现.

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧