Datagridview: Format Werte, ohne tatsächlich die begrenzten Daten zu ändern?
-
27-09-2019 - |
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
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;
}
}