¿Cuándo usar UserControl vs. Control en Silverlight?
controls user-controls (3)
Me estoy mojando los pies en Silverlight, y realmente no entiendo las diferencias y pros / contras de crear un UserControl vs. crear un Control para la misma tarea (como cuando haces clic derecho en una selección en Expression Blend, por ejemplo).
Parece que seleccionar "Hacer en control" solo crea una nueva plantilla para el tipo de base que especifique, mientras que la creación de un UserControl crea una clase base completamente nueva. ¿Es eso correcto?
Captura de pantalla http://tinyurl.com/yjsaox9
En esta instancia particular, estoy creando un control de cuadro de texto personalizado que solo toma números, y se divide en 3 secciones, almacenando 3 valores en propiedades separadas como se muestra a continuación. En este caso particular, ¿cuál sería el mejor?
Captura de pantalla 2 http://tinyurl.com/y9x7zox
Actualización (Pregunta adicional): ¿Por qué no puedo usar la vinculación de plantillas con UserControl, pero puedo hacerlo con un control? Esa es una razón por la que pensé que hacer un UserControl podría no ser la decisión correcta.
Los UserControls están destinados a ser un control compuesto, básicamente un conjunto de otros "controles" agrupados para funcionar como una sola unidad cohesiva.
Los controles personalizados, por otro lado, están destinados a ser utilizados como control único. Piense en los controles básicos en el marco, como TextBox o Button: si estuviera implementando algo así, querría un Control. (Esto es menos común que UserControls, especialmente en WPF, ya que puede usar la creación de plantillas en los controles de la clase base para lograr bastantes cosas en las que necesita controles personalizados en otros marcos). Un control personalizado se trata de definir un nuevo comportamiento para un solo "control".
Si considera que su control es un grupo de tres cuadros de texto, entonces un UserControl
sería apropiado, pero si su control seguirá siendo esencialmente un TextBox
entonces debería extender el control existente con "Make into control".
Parece que necesitas un UserControl
para mí.
Dov, creo que has respondido tu propia pregunta con tu actualización. Los controles personalizados son más útiles cuando quiere hacer un control que soporte la creación de plantillas. De lo contrario, son útiles cuando hereda de otros controles para agregar funcionalidad limpiamente (TextBox -> PasswordTextBox).