Nello script #5 si è visto come le markup extension rendono XAML un linguaggio potente che permette di evitare, in certe situazioni, di ricorrere a codice C# o Visual Basic.NET.

Poiché XAML è basato su XML, ogni valore che si imposta tramite attributo è di per se una stringa e non dà mai informazioni sul tipo .NET che si vuole impostare. Nella maggior parte dei casi, usare gli attributi non è un problema, in quanto i TypeConverter entrano in azione per convertire la stringa nel tipo che la proprietà accetta. In altri casi si può ricorrere all'uso degli elementi per creare tipi complessi da associare alle proprietà, ma non sempre questo basta.

Windows Presentation Foundation include a tale scopo le markup extension: x:Null, x:Type e x:Array.
L'estensione x:Null permette di ottenere un valore nullo corrispondente a null in C# e a nothing in VB.NET. Omettere un attributo e specificare l'attributo con "" non corrispondono ad impostare la proprietà a null. Di seguito un esempio che imposta il content di un pulsante.

<Button Content="{x:Null}" />

Nella creazione di style, animazioni e template è spesso inoltre utile ottenere un riferimento all'oggetto System.Type per una specifica classe. Di seguito un esempio che ottiene il tipo Label e lo imposta come content del pulsante. Il risultato sarà una stringa System.Windows.Controls.Label (ottenuto chiamando ToString di Type):

<Button Content="{x:Type Label}" />

Qualora il tipo non appartenga ai normali namespace inclusi in XAML, si può ricorrere ai prefissi di namespace come indicato nello script #1.
Per ultima, l'estensione x:Array permette di creare un array di qualsiasi tipo e di popolarlo. Di seguito un esempio del suo utilizzo associato ad un pulsante. Il risultato sarà una stringa Label[] Array (ottenuto chiamando ToString di Array):

<Button>
  <x:Array Type="{x:Type Label}">
    <Label Content="Label1" />
    <Label Content="Label2" />
  </x:Array>
</Button>

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi