Frage

Ich habe über die Web-Suche, aber ich habe nicht in der Lage gewesen, eine Antwort zu finden.

Ich habe eine Datagridview mit einem Binding begrenzt, die eine Liste von Objekten einer benutzerdefinierten Klasse hat. Unter den Feldern der Klasse habe ich ein String-Feld, das ich zeigen, indem will

Path.GetFileName();

, weil es enthält die ganze filepath und was ich will, ist nur den Namen der Datei, um zu zeigen, aber den Dateipfad zu halten (das heißt die begrenzten Daten intakt) in dem begrenzten Objekt.

Es ist es eine Möglichkeit, dies zu tun (Format, Vorlage, Stile, ...)? weil ich jederzeit das Feld Wert der Zelle ändern, wird der Wert des Objekts ändert (die es der Logik).

Vielen Dank im Voraus

War es hilfreich?

Lösung

Mit dem DataGridView.CellFormatting Ereignis auf dem Datagridview. Dies wird Ihnen ein DataGridViewCellFormattingEventArgs Objekt mit Informationen über die aktuelle Zelle, einschließlich die Zeile und Spalte und der unformatierte Wert. Sie aktualisieren die Value-Eigenschaft auf den formatierten Wert und den Wert true FormattingApplied und die Datagridview wird diesen Wert machen.

So etwas wie folgt aus:

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

Andere Tipps

Die Binding Klasse ein Format() und Parse() Event-Handler, wo können Sie festlegen, wie die Daten wird in beiden Richtungen formatiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top