Hallo zusammen
Ich hab ein Programm übernommen und soll das nun erweitern.
Die Erweiterung beinhalted das die Eingaben(0.003) automatisch in die Scientific Notation(3E-3) umgewandelt wird.
Ein weiter Teil ist das die Scientific Notation nur in Dreierschritten dargestellt wird, also hoch -9, -6, -3, 3, 6 und 9.
Dazu hab ich nun eine Funktion geschrieben welche das wunderbar umwandelt und als String zurück gibt.
So nun zum Problem. Ich habe diese Funktion eingebaut. Beim DataGridView funktioniert das ganze jedoch nicht.
Der DataGridView ist durch ein Binding an ein XML-Dokument gebunden, welches auch den ValueTyp fest legt. Ich änder den Valuetyp zwar vor der zuweisung des Stringes von double zu string, das hilft jedoch nichts. Mein String(3E-3) wird automatisch wieder zurück auf die ursprüngliche Eingabe(0.003) gesetzt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| private void genericGrid_CellLeave(object sender, DataGridViewCellEventArgs e) { string res; DataGridView dg = (DataGridView)sender; res = _pm.ValidateGridCellData(sender as DataGridView, e.RowIndex, e.ColumnIndex); if (res.Length == 0) { string value = dg.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue as string; res = _pm.ChangeToScientificNotation(value); dg.Rows[e.RowIndex].Cells[e.ColumnIndex].ValueType = typeof(string); dg.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = res; } } |
Ich kann generll keinen String hinzufühgen. Obwohl im Debug-Modus der ValueTyp auf string geändert wird.
Cheerio&THX
pirat
Moderiert von
Kha: Quote- durch C#-Tags ersetzt