Tips

WPF e l'ereditarietà degli stili

Gli Style di WPF sono certamente uno strumento molto comodo. Una caratteristica interessante degli Style è che uno ne può estendere un altro. Supponiamo di avere la seguente definizione: <Style x:Key="MainControlStyle" TargetType="{x:Type Control}" > <Setter Property="FontSize" Value="10" /> <Setter Property="FontWeight" Value="Normal" /> <Setter Property="Padding" Value="2" /> </Style> <Style TargetType="{x:Type Label}" BasedOn="{StaticResource MainControlStyle}" > <Setter...

WPF - Usare più file di risorse

Può capitare di volere fare riferimento a più file di risorse all'interno di una Window o di uno UserControl e farli magari convivere con le risorse definite localmente. La classe ResourceDictionary ci viene incontro con la proprietà MergedDictionary. <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="../../MainResources.xaml" /> <ResourceDictionary Source="../../Styles.xaml" /> </ResourceDictionary.MergedDictionaries> <DataTemplate x:Key="MyTemplate"> ...

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....

Entity Framework e l'attributo ProviderManifestToken

Per una mia applicazione ho creato un EDM a partire da un DB presente su una istanza Sql Server 2005. Per testare l'applicazione, per ragioni che non mi è dato sapere, mi è stato fornito un accesso ad una istanza di Sql Server 2000. Apparentemente l'applicazione funzionava ancora, sennonché, in alcuni casi, veniva sollevata una eccezione con questo messaggio: line 43: Incorrect syntax near '('. Girovagando per il web ho scoperto l'esistenza di un attributo del file SSDL, il ProviderManifestToken. Impostando questo attributo a 2000 anzichè 2005, il problema non veniva più sollevato a...

WCF, Proxy ed errore 407

Ho installato una serie di servizi in un ambiente di test, all'interno di una LAN che fa uso di un proxy per l'accesso ad internet. Dopo aver configurato il tutto, ho eseguito il client per verificare che l'applicazione funzionasse correttamente; il risultato è stato questo: "The remote server returned an unexpected response: (407) Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied.  )." Un po' stranito da questo errore, visto che consideravo che le chiamate ad indirizzi locali bypassassero (oddio che termine)...

Linq ti cambia la vita! - Part II

Volevo fare un altro post (dopo questo) su come l'introduzione di Linq ti permetta di fare operazioni complesse su collezioni (insiemi) di dati, in modo, a mio parere, più facile ed intuitivo. In questo esempio devo aggregare un insieme di oggetti, denominati transazioni. Questi oggetti hanno un codice e una serie di abilitazioni rappresentate da variabili booleane. Le regole di aggregazione sono queste: devo estrarre transazioni distinte per codice, e fare l'unione delle abilitazioni di tutte le transazioni con lo stesso codice. Il tutto si traduce nella seguente query: ...

Full Tips Archive