У меня есть UserControl, который имеет свойство коллекции. Часть моих требований заключается в том, что графический интерфейс элемента управления изменяется в DesignMode в зависимости от содержимого коллекции. Например, ListBox.
Мой код выглядит так (переопределение Add - просто эксперимент):
public partial class MyControl: UserControl
{
public class StringCollection : List<string>
{
public new void Add(string item)
{
Console.Beep();
base.Add(item);
}
}
[Category("Data")]
[Description("The items to be displayed in the Control.")]
[Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design", typeof(System.Drawing.Design.UITypeEditor))]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public StringCollection Items
{
get
{
return mItems;
}
}
Все работает нормально, за исключением того, что во время разработки выясняется, что коллекция была изменена с помощью StringCollectionEditor. Я получаю "Beeps" при создании элемента управления, и если я добавляю в коллекцию из кода.
Я знаю, что это можно сделать, потому что ListBox делает это. У кого-нибудь есть идеи как? Заранее спасибо.