febbraio 2009 Blog Posts

WPF in salsa MVVM e i template

Uno degli aspetti di WPF che più mi piace sono i template. Qui si trova una panoramica su ciò che si può fare. I DataTemplate sono molto comodi quando usiamo MVVM; a parer mio, sono la risposta alla domanda: "Bene ora ho il ViewModel e la View. Come li relaziono tra loro?". Come funzionano? Tramite i DataTemplate puoi creare una associazione tra uno specifico tipo di dato ed un template che lo rappresenta. Facciamo qualche esempio: supponiamo di avere un ViewModel di tipo CustomerViewModel e di volerlo associare alla sua View, uno UserControl chiamato CustomerDetailView; potremmo scrivere qualcosa...

WPF DataGrid e aggiunta di righe ad ItemSource

Un piccolo tip per mostrare una riga di aggiunta elemento nella DataGrid del WPF Control Toolkit. Ho una DataGrid il cui ItemSource è bindato ad una proprietà di tipo ObservableCollection<MioTipo>; inoltre la proprietà CanUserAddRows è impostata a True. Qualcosa di questo tipo insomma: <ToolKit:DataGrid AutoGenerateColumns="False" CanUserAddRows="True" CanUserSortColumns="True" Margin="5,5,5,5" Name="Items" ItemsSource="{Binding Path=OrderItems}"> <ToolKit:DataGrid.Columns> ... </ToolKit:DataGrid.Columns> </ToolKit:DataGrid> Ebbene la...

XmlSerializer e serializzazione personalizzata

Personalizzare l'XML prodotto dalla serializzazione di una classe con XmlSerialization è motlo semplice; è sufficiente infatti far implementare alle classi coinvolte nella serializzazione l'interfaccia IXmlSerializer. Voglio mostrarvi un esempio: ho avuto la necessità di serializzare una classe che conteneva alcune liste di altre classi; il documento prodotto non doveva raggruppare le varie liste in nodi che rappresentavano le proprietà, ma elencare tutte le istanze sotto il nodo radice. La classi di esempio: public class InterfaceIn : IXmlSerializable { public List<Field>...

Aprire un file col programma predefinito

Ecco un piccolo tip per aprire un file in c#, in modo del tutto analogo alla cara vecchia ShellExecute System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = path; proc.StartInfo.UseShellExecute = true; proc.Start(); Non so se sia l'unico modo; sicuramente è un modo semplice ed efficace   Matteo   Technorati Tag: ShellExecute

SqlServer Compact 32 bit in ambiente a 64 bit

Se vi capita di usare Visual Studio 2008 su una macchina con, ad esempio, un Windows Vista a 64 bit per creare una applicazione con SqlServer Compact a 32 bit, potreste imbattervi in un errore col seguente messaggio: ...Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format... A me è successo e ci ho messo un po a capire che era colpa della mia disattenzione. Le soluzioni sono due: la prima è che se...

Routed Event e TreeView

I Routed Event sono stati introdotti con l'avvento di WPF; molto in sintesi, sono eventi che vengono propagati lungo tutto l'albero di controlli della nostra Window, ammettendo quindi gestori multipli: per esempio se abbiamo uno StackPanel con dentro un Button con dentro una Image, l'evento click generato dal click del mouse sulla Image verrà propagato anche al Button e in seguito allo StackPanel. Qui potrete trovare maggiori info. Di seguito invece un piccolo tip per l'uso delle TreeView. Ho implementato un piccolo programmino che prevede la rappresentazione di dati in un albero e la gestione del Drag and Drop....