2009-12-17 3 views
11

Я просто мочу ноги в Silverlight и не понимаю различий и плюсов/минусов создания UserControl против создания элемента управления для той же задачи (например, при щелчке правой кнопкой мыши по выделенному элементу в выражении Смесь, например).Когда использовать UserControl против Control в Silverlight?

Кажется, что выбор «Make Into Control» просто создает новый шаблон для базового типа, который вы указываете, тогда как создание UserControl создает совершенно новый базовый класс. Это верно?

Screenshot http://tinyurl.com/yjsaox9

В данном конкретном случае, я создаю элемент управления окна пользовательского текста, который только принимает номера, и разделяется на 3 секции, хранения 3 значения в отдельные свойства, как на рисунке ниже. В этом конкретном случае, что было бы лучше?

Screenshot 2 http://tinyurl.com/y9x7zox

Update (Дополнительный вопрос): Почему я не могу использовать шаблон Связывание с UserControl, но я могу с контроля? Это одна из причин, по которой я думал, что создание UserControl может оказаться неправильным решением.

ответ

3

Dov, я думаю, вы ответили на свой вопрос своим обновлением. Пользовательские элементы управления наиболее полезны, если вы хотите создать элемент управления, поддерживающий шаблоны. В противном случае они полезны, когда вы наследуете от других элементов управления, чтобы добавить функциональность (TextBox -> PasswordTextBox).

+0

Да, пользовательский контроль определенно имеет для меня смысл. Благодарю. – Dov

4

Если вы считаете свой контроль, чтобы быть группой из трех текстовых полей то UserControl было бы целесообразно, но если ваш элемент управления будет по-прежнему существенно бытьTextBox, то вы должны расширить существующий контроль с «Сделать в управление.»

Похоже, вам нужен UserControl для меня.

8

UserControls должен быть составным элементом управления - в основном связкой других элементов управления, сгруппированных вместе, чтобы работать как единое целое.

Пользовательские элементы управления, с другой стороны, предназначены для использования в качестве одного элемента управления. Подумайте об основных элементах управления в рамках, таких как TextBox или Button, - если вы реализуете что-то подобное, вам нужен элемент управления. (Это менее распространено, чем UserControls, особенно в WPF, поскольку вы можете использовать шаблоны для элементов управления базовым классом, чтобы выполнить немало вещей, где вам понадобятся настраиваемые элементы управления в других средах). Пользовательский элемент управления - это определение нового поведения для одного «элемента управления».

+0

Есть ли способ использовать привязку к шаблону с помощью UserControl? – Dov

+1

Ну, шаблоны для отдельных элементов в составном элементе управления (то есть: TextBox забирает шаблон, назначенный TextBox), будут применяться к usercontrol (при условии, что он не предоставит его собственный), но вы не получите тот же уровень поддержки тем же, что и пользовательский элемент управления. –

Смежные вопросы