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
- Build 2015: segui con noi tutte le novità per gli sviluppatori in diretta da San Francisco
- Speciale Windows Live Services: come integrarli nelle proprie applicazioni
- Rilasciata la RTM di SQL Server 2012, la versione Express subito in download
- Build 2014: tutte le novità per gli sviluppatori in diretta da San Francisco
- .NET Managed provider per MySQL
- WS-I approva Basic Profile 1.0
- Due regali dal Tech-Ed USA 2004: WSE 2.0 e VS 2005 Team System
- VS 2005 e SQL Server 2005 Express da scaricare
- Microsoft aggiorna WinFS beta 1 per VS 2005
- Utilizzare CLEditor per consentire l'input di HTML in ASP.NET MVC