В настоящее время у меня есть список, содержащий Call's, который является базовым классом. Если я хочу добавить производные классы 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; }
}
Мои вопросы в любом случае, когда вы помечаете тип [], содержащий все возможные типы, которые может содержать список? Я подумал о добавлении следующего в мой класс CustomCollectionEditor, но это не работает.
public CustomCollectionEditor(Type type, List<Type> types_)
: base(type)
{
types = types_.ToArray();
}
Было бы идеально, если бы я мог пометить, какие классы CustomCollectionEditor нужно было как-то знать в классе DisplayList.