private void Form1_Load(object sender, EventArgs e)
{
object[] s = new object[] { true, false };
for (int i = 0; i < 30; i++)
{
Property pp = new Property("V2.0" + i.ToString(), 1, false, true);
pp.Category = "基本信息";
pp.DisplayName =i.ToString("000")+ ":我的ID" + (100-i).ToString();
if (i % 3 == 0)
{
pp.Category = "开关设置";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pp.Value = true;
}
else if (i < 8)
{
pp.Maximum = 100;
pp.Minimum = 0;
}
pmc.Add(pp);
}
propertyGrid1.SelectedObject = pmc;
}
public class PropertyManageCls : System.Collections.CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag = -1;
if (value != null)
{
if (base.List.Count > 0)
{
IList<Property> mList = new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if (value != null && base.List.Count > 0)
b