Com afegir controls dinàmicament en un Custom Control de Silverlight

En el meu cas, em vaig trobar amb la necessitat de crear un Custom Control per a Silverlight, el qual havia de ser un contenidor d’altres controls, com poden ser els TextBox. Per crear un control propi de Silverlight tenim un fitxer xaml a on especificar l’estil que emprarà el control i un altre fitxer amb el codi intern específic d’aquest.

En el fitxer xaml a on es defineix l’estil, se li crea un template amb un control de tipus StackPanel a dins, i en aquest panel se li posa un nom concret per poder-lo identificar.

Per altra banda, en el fitxer de codi definim en una nova classe el nostre control Silverlight. En ella, definim en una constant el nom que té l’StackPanel dins del ControlTemplate que s’ha definit anteriorment. Llavors, quan sobreescrivim la funció OnApplyTemplate, cridarem a la funció GetTemplateChild(…) per obtenir una referència del nostre StackPanel, especificant el nom d’aquest, a partir de la constant declarada abans.

Ara ens trobem que ja podem treballar des del codi amb la referència al nostre panel. Per això, en el cas de que es desitgés afegir un control dins del nostre control-contenidor, l’únic que caldria fer seria el següent:

Creem un nou control del tipus que sigui, en aquest cas un TextBlock. Li especifiquem degudament les seves propietats, com pot ser el text a mostrar i l’afegim com a “child” dins del nostre panel.

Aquesta entrada s'ha publicat dins de Silverlight i etiquetada amb . Afegiu a les adreces d'interès l'enllaç permanent.

Deixa un comentari

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *


*

Podeu fer servir aquestes etiquetes i atributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>