Nello script #1 si è visto come sia possibile utilizzare le proprie classi direttamente in XAML. Quando le classi diventano molteplici, così come i namespace personalizzati, diventa scomodo mappare ogni namespace indicando anche ripetutamente il nome degli assembly.
WPF permette di dichiarare all'interno degli assembly, che vengono usati poi come librerie, quali namespace .NET raggruppare sotto un namespace XML. Per farlo occorre aggiungere l'attributo System.Windows.Markup.XmlnsDefinition a livello di assembly, posto solitamente nel file AssemblyInfo.cs.
Nell'esempio seguente si mappano due namespace .NET sotto un unico namespace XML:
[assembly: XmlnsDefinition("http://schemas.aspitalia.com/XScripts/CustomControlLibrary", "ASPItalia.com.XScripts.CustomControlLibrary")] [assembly: XmlnsDefinition("http://schemas.aspitalia.com/XScripts/CustomControlLibrary", "ASPItalia.com.XScripts.CustomControlLibrary.SubControls")]
Successivamente, basta referenziare la libreria all'interno dell'applicazione che ne deve fare uso, mentre nel file XAML occorre indicare solo il namespace XML precedentemente indicato. Non occorre specificare il nome dell'assembly ed è possibile sfruttare più classi situate in namespace .NET diversi mediante il medesimo prefisso:
<Window x:Class="TestClient.Advance" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="http://schemas.aspitalia.com/XScripts/CustomControlLibrary" Title="Advance" Height="302" Width="418"> <StackPanel> <c:UserControl1 /> <c:UserControl2 /> </StackPanel> </Window>
E' interessante notare che questa tecnica è usata dal WPF stesso, con la quale raggruppa sotto http://schemas.microsoft.com/winfx/2006/xaml/presentation diversi namespace .NET. E' inoltre possibile rendere i propri namespace personalizzati come namespace di default mediante l'attributo xmlns senza essere seguito dal prefisso, come permesso dallo standard XML.
Commenti
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
- Microsoft aggiorna WinFS beta 1 per VS 2005
- Utilizzare CLEditor per consentire l'input di HTML in ASP.NET MVC
- Build 2015: segui con noi tutte le novità per gli sviluppatori in diretta da San Francisco
- VS 2005 e SQL Server 2005 Express da scaricare
- WS-I approva Basic Profile 1.0
- Utilizzare il metodo reduce in JavaScript