Когда использовать UserControl против Control в Silverlight? - PullRequest
11 голосов
/ 17 декабря 2009

Я просто мокну в Silverlight и не совсем понимаю разницу и плюсы / минусы создания UserControl против создания элемента управления для той же задачи (например, когда вы щелкаете правой кнопкой мыши на например, выбор в Expression Blend).

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

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

Ответы [ 3 ]

8 голосов
/ 17 декабря 2009

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

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

4 голосов
/ 17 декабря 2009

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

Звучит так, будто тебе нужна UserControl.

3 голосов
/ 17 декабря 2009

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

...