DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

[WPF] GridView Sorting in un ListView

Volendo presentare dei dati in formato tabellare con uno stile grafico maggiormente accattivante, ho voluto provare ad utilizzare l' hosting di un controllo WPF in una Windows Forms già esistente. Ora, già sapevo che in realtà la rappresentazione dei dati in formato griglia in WPF viene implementata tramite una personalizzazione della proprietà View del controllo ListView. Quello che invece non mi aspettavo era che nel layout "GridView mode" di un ListView mancasse di default una feature "scontata" come il sorting tramite click sull' header delle colonne (abituale sia in Windows Forms che in ASP.NET).
Ho trovato dunque questo articolo su MSDN, How to: Sort a GridView Column When a Header Is Clicked, dove si mostra come implementare a manina la concitata feature tramite la gestione dell'evento Click scatenabile sull'oggetto GridViewColumnHeader (nel nostro caso GridViewColumnHeaderClickedHandler), che deriva da ButtonBase:

<ListView x:Name="MyListView" ... GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">
 <ListView.View>
   <GridView>
       <GridViewColumn DisplayMemberBinding="{Binding Path=Property1}" Header="Property1" />
       <GridViewColumn DisplayMemberBinding="{Binding Path=Property2}" Header="Property2" />  
       ...
   </GridView>
 </ListView.View>
</ListView>


OK, funziona, ma sinceramente sono rimasto un po' stranito: non che il tutto sia stato complicato, ma mi sarei aspettato nell'oggetto GridView una proprietà tipo AllowSorting accompagnata magari da un evento OnSorting, una proprietà SortExpression ... insomma.... qualcosa built-in a supporto di questa funzionalità.
Andandomi a leggere GridView Overview su MSDN trovo l'esplicitazione di questa "omissione": 

"Interact with columns by clicking the column header buttons.
When users click a column header button, they can sort the data that is displayed in the column if you have provided a sorting algorithm.
You can handle the
Click event for column header buttons in order to provide functionality like a sorting algorithm."


Riflettendoci bene, possono esistere diversi modi per implementare il sorting di una rappresentazione tabellare, soprattutto se pensiamo alla possibilità di "templatizzare" gli header di colonna. Ad ogni modo ritengo che l'integrazione di un meccanismo di sorting di default non avrebbe fatto male ;).

 Technorati tags: *WPF , *ListView

Print | posted on lunedì 22 ottobre 2007 17:05 | Filed Under [ WPF ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET