SqlCommand有个Parameters属性,点击后会弹开“SqlParameter 集合管理器”,我写了个控件叫ServiceManager,它有个ServiceCollection这样的属性(相当于SqlCommand的Parameters),点击后也会弹出一个集合管理器(相当于“SqlParameter 集合管理器”),我可以在里面添加Service(相当于向“Parameters 集合管理器”中添加SqlParameter),但是我添加了Service后,通过ServiceManager.ServiceCollection这个集合,却发现这个集合中没有Service?请问这是为什么呢?还有不通过拖放控件的方式来做,而直接通过new ServiceManager,再向这个ServiceManager.ServiceCollection中添加Service却没有问题,我想问,是不是ServiceCollection这个类还要实现什么接口吗,还是别的原因。重谢

解决方案 »

  1.   

    你用PropertyGrid做的么?
    你添加每一个Service后,要将其添加到ServiceManager.ServiceCollection集合中。
      

  2.   

    首先,需要做一个ServiceCollectionConverter,继承自TypeConverter,实现自己的转换函数,
    然后,在你的集合(ServiceCollection)类定义前面里加上
    [TypeConverter(typeof(ServiceCollectionConverter))]
    public class ServiceCollection
    {
    ....
    }
      

  3.   

    哦,又是昨天的那个问题啊?
    在ServiceManager的ServiceCollection属性前加[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]吧,这样才会把Designer序列化,也就是Collection集合中的内容,才能得到保存。
    楼主也是做控件的啊,有空大家研究一下。