Combobox im Datagridview

Gast #1529895
Lesenswert?

Hallo zusammen,

mit C# und DotNet 2.0 möchte ich eine Combobox innerhalb eines 
Datagridviews verwenden. Das DataGridview ist ungebunden (und soll 
auch so bleiben), d.h. ich fülle die einzelnen Zellen von Hand. Jetzt 
ist die Combobox dran.

Beim Anlegen wird folgendes voreingestellt:
1
DataGridViewComboBoxColumn colPar;
2
colPar.ValueType = typeof(myParameter);
3
[...]

Zur Laufzeit fülle ich dann die zur Wahl stehenden Elemente ein:
1
List<myParameter> ListeParameter = new List<myParameter>();
2
ListeParameter.Add(new myParameter()); /* usw. */
3
[...]
4
colPar.DataSource = ListeParameter;

Damit erreiche ich, dass meine Combobox mit den gewünschten Werten 
vorgeladen wird. Soweit noch i.O.

Da ich ja ungebunden arbeite, muss ich im validated-Ereignis noch den 
ausgewählten Wert an meine Datenstruktur zuweisen. Nur wie komme ich an 
den ausgewählten Wert? Validated/Validating liefern bestenfalls den in 
der Combobox angezeigten String -> unbrauchbar. Eigentlich habe ich ja 
ein Objekt in die Combobox gefüllt (nämlich was vom Typ myParameter) und 
möchte auch wieder ein Objekt zurückbekommen!! (Anhand des gelieferten 
Strings kann ich keine Rückschlüsse auf das selektierte Objekt ziehen - 
wäre ja eigentlich auch Pfusch).
Wie erhalte ich das selektierte Objekt?


Die Eigenschaften "ValueMember, DisplayMember, DataPropertyName usw. 
benötige ich ja nur bei gebundenen DGVs, richtig?

Auch über das Ausfüllen der Items-Collection erhalte ich nach der 
Selektion nur Strings zurück.

Wer kann mir Hilfestellung geben?
Vielen Dank.
#1529902
Lesenswert?

Ohne jemals C# und .NET verwendet zu haben:
Kannst du herausfinden welchen Index der String in der ComboBox hat 
(bzw. in einer Liste von Strings hat, falls eine solche an der ComboBox 
klebt) und eben jenen Index für den Zugriff auf das Objekt verwenden?
#1529923
Lesenswert?

Scheint mir so, als ob das Ereignis zur Zelle gehört, nicht zur 
ComboBox.
Also wie wäre es mit dem Folgenden:
Aus der Zelle erst mal das ComboBox-Objekt herausfischen und dann mit 
diesem weiterarbeiten? Das wäre mein Ansatz für Delphi und gutgläubig 
wie ich bin, würde ich diesen zunächst auch in C# ausprobieren.
Gast #1531188
Lesenswert?

> Scheint mir so, als ob das Ereignis zur Zelle gehört, nicht zur
> ComboBox.
Ja, glaube ich auch. Aber die Combobox (als DgvCombobox) kennt keine 
eigenen Ereignisse (speziell kein SelectionChanged o.ä.)?!??

> aber weise den ComboBox Items "Tags" zu und verwalte sie durch diese.
An den Tags hängen Verweise an meine Datenstruktur. Diese ändern sich 
aber leider (bzw. natürlich) nicht, wenn ich eine neue Auswahl in der 
Combobox einstelle. Genau das möchte ich ja erreichen. Die neue Auswahl 
als Objekt geliefert bekommen und dieses dann meiner Datenstruktur 
zuweisen.

Gibt's sonst noch Ideen, Vorschläge, Hinweise?

Danke.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren