2010-07-04 14 views
12

Quali sono i principali vantaggi dell'utilizzo di un controllo datagrid rispetto all'utilizzo di un listview? Quando dovrebbero essere usati ciascuno?Listview vs datagrid

risposta

10

Ho abbandonato ListView per DataGrid in .Net 4, poiché la creazione di modelli delle colonne è più semplice.

Il layout è anche più ragionevole e non è necessario ricordare di impostare HorizontalContentAlignment su Stretch per ottenere il contenuto della cella per coprire la cella. Un altro bel po 'di funzionalità sono i modelli di modifica su DataGrid, che mi sollevano dal dover utilizzare un oggetto CellTemplateSelector per ottenere un controllo diverso durante la modifica della cella.

+0

Grazie per vostra informazione. Ci sono delle differenze con gli eventi per le modifiche dei dati nelle colonne, la facilità di ordinare/filtrare i dati o è tutto lo stesso? –

+0

Non ne sono sicuro, dal momento che utilizzo l'associazione a un modello per ordinare, filtrare e ottenere notifiche di aggiornamento dei dati. Ma per quello, ListView e DataGrid sembrano simili. – codekaizen

+0

La mia applicazione corrente ha database> Entity Framework> Raccolta osservabile (in viewmodel)> listview. Quello che è importante per me è che mi piacerebbe avere i dati nell'aggiornamento del datagrid quando i dati del database cambiano. Non sei sicuro di quanto sia semplice farlo, ma esaminarlo subito. –

11

alcuni punti da considerare che Colin Eber hanno dichiarato in DataGrid vs GridView discussione:

  • ListView (GridView) è un controllo sola lettura out-of-the-box.The soluzione standard potrebbe essere quella di sincronizzare l'elenco con un 'dettagli vedi' comprende textBoxes
  • DataGrid consente la modifica sul posto dei dati
  • DataGrid esegue transazione modifica (la riga viene trattata come un atomo)
  • Il supporto DataGrid generazione di auto-colonna
  • Il DataGrid ha un elemento RowDetails (se vi piace questo genere di cose!)
  • Il DatGrid supporta praticamente tutto il ListView fa, diverse modalità di selezione, styling, ecc ...

E un altro importante:

  • Il DataGrid ha build-in di smistamento supporto cliccando su colonna. Mentre aggiungere l'ordinamento a ListView/GridView è absolutely possible, preferirei preferire questo tipo di cose in modo immediato in DataGrid.
+1

per quanto riguarda le prestazioni? un Datagrid con 200 elementi (8 colonne) raggruppati per una colonna ha bisogno di 20 s + sulla mia macchina per il rendering. – Firo

+1

@Firo: Questo 'sicuramente non è un problema di DataGrid. Il collo di bottiglia delle prestazioni deve essere da qualche altra parte. – Liero

+1

@Liero ho scambiato il datagrid con il datagrid wpf toolkit e il problema è andato via. È sicuramente un problema con il datagrid wpf in chiaro. Ho provato che ci vogliono secoli per misurare con i raggruppamenti – Firo