WP7 - Controls - Критерии, чтобы решить, от какого класса наследовать - UserControl или ContentControl или класс Control - PullRequest
0 голосов
/ 28 июля 2010

Я разрабатываю элементы управления для приложения WP7.Мне известно, что я могу быстро создать элемент управления, унаследовав его от класса UserControl (который происходит от класса Control).Кроме того, такие элементы управления нельзя настраивать, т. Е. Все свойства, связанные с элементом управления, являются теми, которые заданы в пользовательском элементе управления - они не могут быть переопределены в xaml и т. Д. Но может кто-нибудь поделиться, пожалуйста, лучшими практиками / ситуациями относительно того, когда наследовать непосредственно от Класс управления против Класс ContentControl / ItemControl против Класс UserControl (мне не хватает других вариантов?)?

Спасибо.

1 Ответ

0 голосов
/ 10 сентября 2010

Вот краткое описание каждого типа элементов управления, которые вы упомянули:

1.ItemsControl - обычно используется, когда вы хотите иметь элемент управления с такими элементами, как, например, ListBox, TreeView и т. Д. Одна из самых важных частей при выводе из ItemsControl - переопределение:

GetContainerForItemOverride

IsItemItsOwnContainerOverride

PrepareContainerForItemOverride

Вот пример:

http://www.silverlightshow.net/items/How-to-inherit-from-ItemsControl-and-create-a-UniformGrid-with-containers.aspx

Обратите внимание, что в примере не последняя версия Silverlight, но подробно объясняется, как реализовать пользовательский элемент управления.

2.Control - когда вы хотите реализовать простой элемент управления, который не имеет свойств Content или Items, например, TextBox, вы можете получить его из Control.

3.ContentControl - когда вам нужно поместить какой-либо контент в элемент управления. Как, например, кнопка Content. В зависимости от ваших потребностей, какой будет выбор базового класса.

Вы также можете взглянуть на остальные учебные пособия, которые предоставляет SilverlightShow, связанные с «как реализовать пользовательский элемент управления».

Я надеюсь, что это ответит на ваш вопрос.

...