Использование дженериков с оконными формами - PullRequest
0 голосов
/ 30 ноября 2011

Я хочу создать пользовательский элемент управления со свойством Items.

Безопасно ли возвращать класс ItemColection, который реализует IList<Item>, потому что я не видел этого ни в одном из встроенных элементов управления?

Как лучше всего это реализовать?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Да, вы можете использовать практически все, что угодно. Форма - это (просто) класс.

То, что вы не видите примеров, в основном связано с тем, что WinForms - это технология .NET 1.0. С тех пор очень мало дополнений или изменений.

И если вам не нужны специальные функции, просто сделайте это просто:

public IList<ItemType> ItemsCollection  { get ...   set ... }
0 голосов
/ 30 ноября 2011

Нет проблем для создания свойства типа, унаследованного от ILIst для элемента управления. Но если вы создаете элемент управления, лучше сделать свойство доступным для редактирования с помощью PropertyGrid во время разработки. Чтобы сделать его редактируемым, вы должны создать собственную коллекцию элементов, унаследованных от CollectionBase , и создать свойство этого типа.

Ознакомьтесь с этой статьей: Создание пользовательской коллекции для использования в PropertyGrid

И после этого не забудьте сделать свойство Items редактируемым во время разработки, установив соответствующие атрибуты:

[Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public YourItemsCollection Items
{
    get { ... }
    set { ... }
}
...