In WPF i controlli non devono avere per forza un nome
Il titolo del post è talmente significativo che potrei addirittura non scrivere nulla qua.
Questa cosa dei controlli senza nome è una cosa a mio avviso comodissima, perchè non è detto che tutti i controlli che mettiamo su una Window o una Page abbiano davvero un significato dal punto di vista programmatico. Pensiamo alle classiche Windows Forms: credo che sia successo a tutti di mettere delle Label solo per dare un’etichetta a TextBox o ad altri controlli di input. Il designer ci mettere per default un nome come Label1, e poi dobbiamo essere noi a dare un nome più sensato. In certi casi, come questo che ho appena citato, il nome non lo vorrei proprio dare, perchè non mi interessa vedere quella label nel codice C#. O comunque, possiamo darlo magari in un secondo momento, quando ci rendiamo conto che magari ci serve gestirlo in qualche modo.
In WPF accade esattamente così. Quando aggiungiamo un nuovo controllo su una Window esso non ha alcun nome. Lo capiamo perchè nello XAML il tag – ad esempio <TextBox />, non ha l’attributo Name. In questo caso, quel controllo non ha nome e non possiamo gestirlo nel code-behind C# attraverso una variabile dedicata. Trovo comodissimo poter aggiungere controlli no-named, solo per creare la UI e per abbellirla, senza che questo mi vada ad intaccare e a “sporcare” il codice, l’Intellisense e così via. Possiamo ovviamente recuperarne l’istanza in altri modi, come navigare nel visual tree della Windows e cercare un determinato oggetto, perchè l’oggetto esiste a tutti gli effetti, solo che non ha nome e quindi il compilatore evita di istanziare una variabile nel code-behind.
Technorati Tags: wpf programming