DataGridViewTextBoxColumn ValueMember hat Zahl, die nicht zur Auswahl steht

25/08/2007 - 15:27 von Urs Frei | Report spam
Hallo

Normalerweise programmiere ich mit Java, wollte mir jetzt aber mal ein Bild
über C# machen.

Ich hantiere etwas mit der DataGridView. Dabei habe ich Probleme mit der
DataGridViewComboBoxColumn. Der ValueMember ist eine Zahl. Immer wenn ich
versuche einen neuen Datensatz zur DataGridView hinzuzufügen, dann erhalte
ich die Fehlermeldung DataGridView-Ausnahme: Der
DataGridViewComboBoxCell-Wert ist ungültig.
Ich habe die Vermutung, dass das Problem daran liegt, dass der neue
Datensatz der DataGridView in der gebunden Spalte eine 0 stehen hat. Das
ComboBox nun versucht zu dieser 0 einen Wert zu suchen, den es aber gar
nicht gibt.

Nun zu meiner Frage: Ich möchte in meiner DataGridView eine ComboBox haben.
Diese soll aber nicht zwingen einen Wert verlangen. Es soll also auch
möglich sein die ComboBox leer zu lassen. Was muss ich tun, damit dies so
funktioniert?

Besten Dan für Eure Hilfe

Gruss

Urs

PS: Vermisst ihr es nicht, dass ihr die Implementationen von .net nicht
einsehen könnt? Oder geht das sogar?
 

Lesen sie die antworten

#1 Frank Dzaebel
25/08/2007 - 16:55 | Warnen spam
Hallo Urs,

Nun zu meiner Frage: Ich möchte in meiner DataGridView eine ComboBox
haben. Diese soll aber nicht zwingen einen Wert verlangen. Es soll also
auch möglich sein die ComboBox leer zu lassen. Was muss ich tun, damit
dies so funktioniert?



Das hàngt aber von Deiner Implementation, Datenbindung, etc. ab. Willst Du
spàter die Werte in eine DB persistieren? In folgendem Link wàhle ich zum
Beispiel einfach einen Standard-Wert im Business-Objekt-Konstruktor:

[Typsicherere Eigenschaften bei Datenbindung]
http://dzaebel.net/TypesafeProps.htm

... sodass die Frage gar nicht erst ensteht, denn beim Klick auf die Zeile
wird gleich "Sir" ausgewàhlt. Ansonsten wàre es ja auch entscheidend, was
z.B. in der DB für diesen <nicht gesetzt> Wert stehen *soll*. Deinen
"leeren" Wert kannst Du auch bekommen, wenn Du in diesem Beispiel einfach
ein string-Array als DataSource der Combo-Column nehmen würdest (nebst den
entsprechenden Änderungen).



PS: Vermisst ihr es nicht, dass ihr die Implementationen von .net nicht
einsehen könnt? Oder geht das sogar?



Geht, z.B. mit dem

[Reflector for .NET]
http://www.aisto.com/roeder/dotnet/


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen