WPF

There are 9 entries for the tag WPF

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

Caricare un Template in modo condizionale

Come avevo anticipato nel post precedente vorrei esporre un tip per poter selezionare un template per rappresentare un determinato dato in base ad una condizione. Supponiamo di avere una situazione simile al post precedente, in cui ho un ViewModel che mi rappresenta un ordine: OrderViewModel. Voglio rappresentare OrderViewModel in tre modi diversi in base al fatto che esso rappresenti la scheda di un ordine, un ordine in modifica o un ordine nuovo. Per fare ciò implemento tre View diverse con tre UserControl e le associo ad altrettanti ControlTemplate nel seguente modo: <ControlTemplate x:Key="OrderDetailTemplate"...

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

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

WPF Binding

La prima cosa del Binding di WPF che mi ha piacevolmente colpito è la possibilità di gestire le 'dipendenze' tra due controlli: ovvero di poter rendere il contenuto di un controllo dipendente dallo stato di un altro controllo. Faccio un piccolo esempio. Supponiamo di volere creare una lista di elementi al quale abbiamo associato una nota, che vogliamo visualizzare all'interno di una TextBox. Per fare ciò basta poco codice Xaml: <DataGrid Name="ElementsList"...> ... </DataGrid> <TextBox Name="txtNote" Text="{Binding Path=SelectedItem.Value, ElementName=ElementsList}" /> In questo modo non dobbiamo preoccuparci di gestire eventi particolari per popolare la nostra TextBox. Ogni volta che selezioniamo...

DataGrid e Binding OneWay

Come detto nel post precedente sto cominciando, finalmente, a provare WPF, con un progettino semplice semplice. Quale posto migliore del blog per prendere appunti? Cominciamo dalla Datagrid del WPF Control Toolkit. Ho la necessità di visualizzare una lista di Entity all'iterno della DataGrid. Alcune proprietà di queste Entity sono in sola lettura; ho pensato quini di impostare il Binding sulla colonna come 'OneWay': <my:DataGridTextColumn Binding="{Binding Path=GrossTotal, Mode=OneWay}" Header="Totale" /> Questo non è sufficiente; anzi genera pure una eccezione in fase di bind. Il motivo è che la DataGrid imposta di default il Binding Mode a 'TwoWay'...

Considerazioni su Microsoft Days di Milano

É il secondo evento a cui partecipo (il primo sono stati i Community Days). Devo dire che queste giornate mi piacciono. Ci si incontra, si vedono i mostri sacri delle community e di mamma MS che si aggirano e si mischiano coi poveri mortali e si assiste, spesso, a sessioni molto interessanti. Il giudizio complessivo, forse falsato da questo pregiudizio positivo, non può che essere molto positivo. Cominciamo: devo dire che dopo la keynote vedere arrivare l'autore di questo a parlarci di EF mi ha fatto un attimo saltare sulla sedia. Devo dire che in questo caso ero prevenuto;...