Редактор элементов компонента

Начал писать компонент.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;

namespace Twitch_prime_downloader
{
    public class MultipleProgressBar : Control
    {
        [DefaultValue(null)]
        public IEnumerable<MultipleProgressBarItem> Items { get; private set; }

        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.FillRectangle(Brushes.LightGray, e.ClipRectangle);
            if (Items != null)
            {
                int itemCount = Items.Count();
                int itemWidth = Width / itemCount;
                int iter = 0;
                foreach (MultipleProgressBarItem item in Items)
                {
                    Rectangle r = new Rectangle(itemWidth * iter, 0, 50, 20);
                    e.Graphics.FillRectangle(Brushes.Red, r);

                    iter++;
                }
            }
        }

        public void SetItems(IEnumerable<MultipleProgressBarItem> items)
        {
            Items = items;
            Refresh();
        }
    }

    public class MultipleProgressBarItem
    {
        public int MinValue { get; }
        public int MaxValue { get; }
        public int Value { get; }

        public MultipleProgressBarItem(int minValue, int maxValue, int value)
        {
            MinValue = minValue;
            MaxValue = maxValue;
            Value = value;
        }
    }
}

Работоспособность ещё не проверял.
Как сделать для него редактор элементов (как у ListView, например)? Чтобы можно было редактировать элементы в design time.

Вроде бы этим атрибутом: CollectionEditor Class (System.ComponentModel.Design) | Microsoft Learn

Окно редактора появилось, но кнопки “Добавить” и “Удалить” недоступны.
Видимо, надо ещё тип элементов указать, но как?

Может быть потому что тип списка IEnumerable, а не какой-нибудь List, и оно не знает как добавлять и удалять.
Или можно создать наследника, переопределить методы про создание/удаление, и использовать этот атрибут вместо стандартного.

У ListView вот так написано:

    [SRCategory(nameof(SR.CatBehavior))]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Localizable(true)]
    [Editor($"System.Windows.Forms.Design.ListViewItemCollectionEditor, {AssemblyRef.SystemDesign}", typeof(UITypeEditor))]
    [SRDescription(nameof(SR.ListViewItemsDescr))]
    [MergableProperty(false)]
    public ListViewItemCollection Items
    {
        get
        {
            return _listItemCollection;
        }
    }

Тут судя по https://referencesource.microsoft.com/#System.Design/System/Windows/Forms/Design/ListViewItemCollectionEditor.cs,f8b138182f5b800c ничего не делается, кроме замены какого-то текста (но странно, что код почему-то недоступен).

Так что возможно дело просто в том, что ListViewItemCollection это IList, а не IEnumerable, с которым хз как что-то делать, кроме чтения списка.

Еще может быть надо, чтоб у элементов был конструктор без параметров.