Wie wird der Wert für die DataGridViewComboBox-Spalte festgelegt?

7

Ich möchte wissen, wie der Wert einer DataGridViewComboBox-Zelle festgelegt wird. Ich binde bereits die DataGridViewComboBox mit DataSource. Aber ich möchte dieser Datenquelle einen neuen Wert geben.

Das habe ich bisher:

%Vor%

Es wird jedoch ein Fehler ausgegeben, der besagt: Formatausnahme: DataGridViewComboBox Der Zellenwert ist nicht gültig .

Wie kann ich das ohne Fehler erreichen?

    
thinzar 12.05.2011, 10:16
quelle

5 Antworten

3

Der Fehler ist darauf zurückzuführen, dass Sie ein DataSource an die Spalte ComboBox gebunden haben und während Sie Select zuweisen, versucht es, dasselbe in DataSource zu finden. Am besten fügen Sie die ursprüngliche DataSource hinzu, die Sie an die Spalte ComboBox

binden     
V4Vendetta 12.05.2011, 11:03
quelle
13

Die Ursache Ihres Problems liegt darin, dass der Wert "Auswählen" in Ihrer Liste der Kombinationsfeldwerte nicht vorhanden ist. Sie müssen dies entweder der Datenquelle für die Spalte oder der Datenquelle für die Combobox der einzelnen Zellen hinzufügen (mit dem Bearbeitungssteuerelement dieser Zelle).

Im Folgenden finden Sie weitere Erläuterungen zum Festlegen des Werts des ausgewählten Elements, das ich verlassen werde, da Sie es möglicherweise nützlich finden.

Es gibt zwei grundlegende Möglichkeiten, den Wert einer DataGridViewComboBoxColumn festzulegen. Sie verwenden entweder Datenbindung oder Sie legen den Wert direkt fest.

Es klingt, als ob Sie versuchen, direkt zu setzen, also erkläre ich das zuerst und dann unten vervollständige ich die Antwort mit Datenbindung.

Nehmen Sie das folgende erfundene Beispiel:

%Vor%

In diesem Beispiel habe ich die Eigenschaft ValueMember auf "id" gesetzt, was auf die Eigenschaftsnamen-ID in der Liste verweist, an die meine ComboBox gebunden ist.

Alles, was ich tun muss, ist Folgendes (wo ich sicher bin, dass meine Zeilen- und Zellenindizes korrekt sind - Sie sollten Code schreiben, um das zu überprüfen):

%Vor%

Nun, in meinem Beispiel funktioniert das, weil mein ValueMember auf meine "id" -Eigenschaft gesetzt ist, die eine ganze Zahl ist. Wenn stattdessen id eine String-Eigenschaft wäre, müsste ich einen Wert wie folgt setzen:

%Vor%

(eigentlich nur das ausprobiert und es schafft eine implizite Umwandlung)

Und natürlich möchte ich sicherstellen, dass es tatsächlich einen Wert von "1" in meiner Liste gibt.

Die obigen paar Zeilen sind die direkte Ursache für Ihren Fehler. - Ihre Liste, die die Werte an das Kombinationsfeld liefert, enthält nicht den Wert "Auswählen".

Um den Wert mithilfe der Datenbindung festzulegen, müssen Sie der ComboBoxColumn in der DataGridView-Datenquelle mitteilen, an was sie gebunden ist.

Das geschieht, indem ich den DataPropertyName der ComboBoxColumn auf den Namen einer Eigenschaft der Klasse setze, gegen die die DataGridView gebunden ist.

    
David Hall 12.05.2011 10:41
quelle
3

Es gibt eine Möglichkeit, den Wert festzulegen, aber er ist nicht zulässig, wenn DataSource festgelegt ist.

%Vor%     
Vale 12.05.2011 10:43
quelle
2

Das hat für mich funktioniert

%Vor%

hoffe diese Hilfe

    
Luis Lopez 17.01.2014 18:54
quelle
0

Versuchen Sie es, indem Sie das Ereignis

hinzufügen %Vor%     
Dotnet 12.05.2011 10:39
quelle

Tags und Links