DataGridView: valori formato senza modificare i dati limitati?
-
27-09-2019 - |
Domanda
Ho cercato attraverso il web, ma non sono stato in grado di trovare una risposta.
Ho un DataGridView con un BindingSource delimitata, che ha una lista di oggetti di una classe personalizzata. Tra i campi della classe, ho un campo di stringa, che voglio mostrare usando
Path.GetFileName();
perché contiene l'intero percorso del file e quello che voglio è quello di mostrare solo il nome del file, ma mantenendo il percorso del file (vale a dire, i dati delimitate intatto) nell'oggetto limitata.
E 'Esiste un modo per fare questo (formato, modello, stili, ...)? perché ogni volta a cambiare il campo valore della cella, cambia il valore dell'oggetto (che di logica).
Molte grazie in anticipo
Soluzione
Utilizza la DataGridView.CellFormatting evento sul DataGridView. Questo vi darà un DataGridViewCellFormattingEventArgs oggetto con informazioni sulla cella corrente, tra cui la riga e la colonna e il valore formattato. Si aggiorna la proprietà Value per il valore formattato e impostato FormattingApplied true, e DataGridView renderai tale valore.
Qualcosa di simile a questo:
private void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 0) // Check for the column you want
{
e.Value = Path.GetFileName(e.Value.ToString());
e.FormattingApplied = true;
}
}