Когда использовать UserControl против Control в Silverlight?
Я просто не могу понять, что такое Silverlight, и я не совсем понимаю разницу и плюсы и минусы создания UserControl
и создания элемента управления для той же задачи (например, когда вы щелкаете правой кнопкой мыши по выделению в Expression Blend, например).
Кажется, что выбор "Make Into Control" просто создает новый шаблон для указанного вами базового типа, тогда как создание UserControl
создает совершенно новый базовый класс. Это верно?
В этом конкретном случае я создаю пользовательский элемент управления текстового поля, который принимает только цифры и делит себя на 3 раздела, сохраняя 3 значения в отдельных свойствах, как показано ниже. В этом конкретном случае, что было бы лучше?
Ответы
Ответ 1
Дов, я думаю, вы ответили на свой вопрос своим обновлением. Пользовательские элементы управления наиболее полезны, если вы хотите создать элемент управления, поддерживающий шаблоны. В противном случае они полезны, когда вы наследуете от других элементов управления, чтобы полностью добавить функциональность (TextBox → PasswordTextBox).
Ответ 2
UserControls должны быть составным элементом управления - в основном связкой других "элементов управления", сгруппированных вместе, чтобы работать как единый сплоченный блок.
Пользовательские элементы управления, с другой стороны, предназначены для использования в качестве единого элемента управления. Подумайте об основных элементах управления в рамках, таких как TextBox или Button, - если вы реализуете что-то подобное, вам нужен элемент управления. (Это менее распространено, чем UserControls, особенно в WPF, поскольку вы можете использовать шаблоны для элементов управления базовым классом, чтобы выполнить немало вещей, где вам понадобятся настраиваемые элементы управления в других средах). Пользовательский элемент управления - это определение нового поведения для одного "элемента управления".
Ответ 3
Если вы считаете, что ваш элемент управления представляет собой группу из трех текстовых полей, тогда подходит UserControl
, но если ваш элемент управления по существу будет TextBox
, тогда вы должны расширить существующий элемент управления с помощью "Make into control". "
Похоже, вам нужен UserControl
для меня.