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

È stato utile?

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;
    }
}

Altri suggerimenti

Il Binding classe ha un Format() e Parse() gestore di eventi in cui è possibile definire come i dati verrà formattato in entrambi i modi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top