Autor Beitrag
pirat_zg
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 11.05.11 11:58 
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.

ausblenden 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;
             //Kontrolliert ob die eingabe richtig ist. Gibt eine Fehlermeldung zurück oder nichts.
             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;
                  //wandelt die Eingabe in die ScientifNotation um
                  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 user profile iconKha: Quote- durch C#-Tags ersetzt