XMLNS

A volte si rende necessario importare un namespace per poter utilizzare un proprio tipo in XAML.

Se ad esempio avessimo una classe

namespace PlayWithSTYLE.Item
{
public class Person
{
public string Name { get; set; }
public string SName { get; set; }
}
}

nel caso in cui faccia parte dello stesso Assembly dello xaml per poterla utilizzare si deve aggiungere il riferimento al Namespace

(local è il prefisso per il mapping del namespace PlayWithXMLNS.Oject.Item che ci permetterà di accedere alle classi).

A questo punto possiamo utilizzare la nostra classe:

e associarla a qualche controllo

Se si vuole invece far riferimento a un namespace di una dll esterna è necessario definire anche l’assembly (in questo caso l’assembly esterno si chiama EXTClass).

Così facendo però leghiamo il XAML anche al nome dell’assembly oltre che al namespace: per evitarlo, l’assembly esterno deve definire l’attributo System.Windows.Markup.XmlnsDefinition che permette di associare un xmlNameSpace al nostro clrNamespace.

[assembly: XmlnsDefinition("MyExtClass", "EXTClass.Object.Item")]

Così ora per far riferimento al namespace EXTClass.Object.Item dell’assembly esterno EXTClass è sufficiente:

Da notare però che questo attributo funziona solo tra assembly diversi per via dell’ordine di compilazione degli elementi come spiegato qui.

Annunci
Tagged with: , , ,
Pubblicato su WPF

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: