stevign76 ha scritto:
...se può "lavorare da sola", tenendo conto di quello che poi ci devo fare (filtri, stampa, importa/esporta, stampa) o è più corretto associarlo ad un dataTable?....
La domanda di per sé è ambigua. Può lavorare sia da sola che associata.
Lavorando "da sola" sarai tu ad inserire le righe a runtime, sarai tu a cancellarle e sarai tu a dire come modificare i dati salvati. Personalmente lo trovo troppo macchinoso.
Associandola (che è il metodo che io preferisco) hai meno codice da scrivere perché non di devi curare di svuotare la griglia, riempirla di nuovo, eccetera...
Come suggerivo prima, disegna una classe che organizzi i dati in arrivo (se da file o da DB lo deciderai quando conoscerai entrambi i sistemi e scoprirai quale fa al caso tuo), crei una List<T> che tenga conto delle varie istanze degli oggetti creati e la associ alla proprietà
DataGridView.DataSource. Come vedi è una proprietà di tipo Object, quindi puoi assegnare qualsiasi riferimento (List<T> o DataTable che sia).
Se imposti correttamente i nomi delle proprietà della classe, non ti serve nemmeno creare le colonne. Fa tutto in automatico. È ovvio che se son colonne tipo delle combobox, il discorso cambia.
Per filtrarla ti basta LINQ. Per stamparla il discorso può cambiare o meno a seconda di come strutturi la classe ed i relativi metodi.
So che la voglia di pigiare sulla tastiera è dirompente, ma se c'è una cosa che ho imparato a mie spese è che conviene PRIMA leggere e POI scrivere il codice, o ti ritrovi a riscriverlo n-mila volte per correggere errori banali ma che in realtà incasinano tutto. Vige la regola del "Chi ben comincia è a metà dell'opera".