Nota: Articoli etichettati come Snippet non contengono codice completo ma solo parti di esso, recuperate da appunti. Per cui, potrebbe essere necessario modificarne alcuni nomi o indici. Per ogni chiarimento, lasciate un commento all’articolo.
Quando si effettua un binding diretto tra una IList (risultato da una query su database) di oggetti ed una Datagridview, automaticamente tutte le proprietà pubbliche della classe di cui gli oggetti fanno parte vengono visualizzate come colonne della dgv stessa.
In alcuni casi può essere necessario nascondere alcune colonne. I metodi sono due anche se personalmente preferisco il secondo.
//dgvElenco è il nome della DataGridView e “id” è la proprietà da nascondere
dgvElenco.Columns[“id”].Visible = false;
Questo primo metodo porta l’impostazione di una colonna del controllo a visible = false e quando la uso, inserisco questo codice subito dopo la procedura di binding. In tal modo, però, la definizione di colonna “nascosta” viene portata nel codice, nella logica dell’applicazione, piuttosto che nella definizione della classe. Questa è invece la seconda strada percorribile.
[Browsable(false)]
public bool nonPersistente { get; set; }
Utilizzando l’attributo “Browsable” del namespace System.ComponentModel è possibile definire all’interno della classe stessa il “nascondimento” (!!!) della specifica proprietà