Ho in cantiere due issue su ControlTemplate e DataTemplate: noto spesso dai clienti che la differenza tra i due non è così conosciuta come dovrebbe essere, e soprattutto i meccanismi di utilizzo dell'uno e dell'altro non li si conosce....
Purtroppo, sono slittati come priorità visto che oggi ho passato una giornata lavorativa a venire a patti con un progetto VS2005 + Cider e un VS2008.
Dovevo fare delle prove con una GridView per WPF di cui magari un giorno vi parlerò, e per farlo ho aperto un progetto WPF _nuovo_ con VS2008 e tenendo di fianco il vecchio VS2005 come referenza e controllo. Il progetto vs2008 è complicatissimo, ovviamente: contiene una window vuota che ha solo la griglia bindata a una singola tabella di tre campi :P
E' successo il finimondo.....
Mi sono sempre lamentato di Visual Studio 2005 perchè effettivamente non da alcun tipo di supporto, è lento e goffo e non sai mai se i warning sono warning o errori oppure è semplicemente la luce che entra e si riflette ed a Visual Studio non piace e quindi da i Warning. 2008 per contro è infinitamente piu preciso, ma non è stato pensato per lavorare con le risorse. La griglia in questione fa un massiccio uso di ResourceDictionary (tipo 4 o 5 quelli custom che sto facendo ex-novo io, piu altri che sono embedded negli assembly) e lavorare esclusivamente con i resource dictionary pur su un progetto nuovo comporta:
1: 300 Mega di ram _sempre_ istanziata. Per fare cosa, non si sa
2: Lentezza esasperante a fare qualsiasi cosa: cambiare un attributo comporta il controllo in tempo reale di _tutto_ il resourcedictionary. E quindi vedo che se apro un tag ovviamente lui pronto mi dice che non è chiuso.. e grazie.. e per dirmelo mi inchioda la macchina. Sicuramente è modificabile (spero) da configurazione, ma il fatto che parta così di default mi fa un pò paura.... mi ricorda con orrore i vecchi tempi di VB6...:P
3: Lentezza esasperante nell'apertura di un qualsiasi dictionary. Se lo passa tutto per cercare di visualizzare qualcosa. Ma dico, non è meglio che se incontra ResourceDictionary chiude automaticamente l'anteprima e basta??
4: Eludendo il discorso Dictionary, devo dire che il supporto del designer è piu scarso di come me lo ricordavo.... qualsiasi usercontrol che utilizzare dei Content Template con della grafica, non viene renderizzato (rimane il placeholder ma si perde la grafica nel Resource Dictionary)
Che dire... non fate come me, se volete fare queste cose, fatele in blend :)