2009-12-17 19 views
11

Mi sto solo bagnando i piedi in Silverlight e non capisco le differenze ei pro/contro della creazione di un controllo utente rispetto alla creazione di un controllo per lo stesso compito (come quando fai clic con il pulsante destro del mouse su una selezione in Espressione Miscela, per esempio).Quando utilizzare UserControl e Control in Silverlight?

Sembra che selezionare "Make Into Control" crei solo un nuovo modello per il tipo di base specificato, mentre la creazione di un UserControl crea una classe di base completamente nuova. È corretto?

Screenshot http://tinyurl.com/yjsaox9

In questo caso particolare, sto creando un controllo casella di testo personalizzato che richiede solo numeri, e si divide in 3 sezioni, memorizzare 3 valori in proprietà distinte come illustrato di seguito. In questo caso particolare, quale sarebbe il migliore?

Screenshot 2 http://tinyurl.com/y9x7zox

Aggiornamento (Domanda supplementare): Perché non posso usare modello vincolante con un UserControl, ma posso con un controllo? Questa è una delle ragioni per cui ho pensato che rendere un UserControl potrebbe non essere la decisione giusta.

risposta

3

Dov, penso che tu abbia risposto alla tua stessa domanda con il tuo aggiornamento. I controlli personalizzati sono molto utili quando si desidera creare un controllo che supporti i modelli. Altrimenti sono utili quando si eredita da altri controlli per aggiungere funzionalità in modo pulito (TextBox -> PasswordTextBox).

+0

Sì, un controllo personalizzato ha sicuramente più senso per me. Grazie. – Dov

4

Se si considera il vostro controllo di essere un gruppo di tre caselle di testo poi un UserControl sarebbe appropriato, ma se il controllo sarà ancora essenzialmente essere un TextBox allora si dovrebbe estendere il controllo esistente con "Fai in controllo."

Sembra che tu abbia bisogno di un UserControl per me.

8

Gli UserControls sono pensati per essere un controllo composito, in pratica un gruppo di altri "controlli" raggruppati per funzionare come un'unità singola e coesa.

I controlli personalizzati, al contrario, sono destinati ad essere utilizzati come controllo singolo. Pensa ai controlli di base nel framework, come TextBox o Button: se stavi implementando qualcosa del genere, dovresti avere un controllo. (Questo è meno comune di UserControls, specialmente in WPF, dal momento che è possibile utilizzare i modelli sui controlli della classe base per realizzare un bel po 'di cose in cui avresti bisogno di controlli personalizzati in altri framework). Un controllo personalizzato consiste nel definire un nuovo comportamento per un singolo "controllo".

+0

C'è un modo per utilizzare Template Binding con un UserControl? – Dov

+1

Bene, i modelli per i singoli elementi nel controllo composito (ovvero: un TextBox prenderà un modello assegnato a TextBox) si applicheranno a usercontrol (a condizione che non fornisca il proprio), ma non ottieni lo stesso livello di supporto tematico come con un controllo personalizzato. –

Problemi correlati