在PropertyGrid中修改CollectionEditor

时间:2010-03-05 19:42:26

标签: c# collectioneditor

我目前有一个包含Call的列表,它是基类。如果我想将派生的派生类添加到列表中,我知道要执行以下操作。

   public class CustomCollectionEditor : System.ComponentModel.Design.CollectionEditor
    {
      private Type[] types;
      public CustomCollectionEditor(Type type)
        : base(type)
      {
        types = new Type[] { typeof(Call), typeof(CappedCall) };
      }

  protected override Type[] CreateNewItemTypes()
  {
    return types;
  }
}

public class DisplayList
{
  public DisplayList() { }
  [Editor(typeof(CustomCollectionEditor), typeof(UITypeEditor))]
  [DataMember] public List<Call> ListCalls { get; set; }
}

我的问题是,无论如何移动你标记包含列表可以包含的所有可能类型的Type []的位置?我想将以下内容添加到我的CustomCollectionEditor类中,但这不起作用。

public CustomCollectionEditor(Type type, List<Type> types_)
  : base(type)
{
  types = types_.ToArray();
}

如果我能以某种方式在DisplayList类中标记CustomCollectionEditor需要注意哪些类,那将是理想的。

1 个答案:

答案 0 :(得分:1)