Ich habe ein DataGridView mit einer ComboBox-Spalte. Ich brauche es verschiedene Optionen je nach Zeile. Die Werte müssen auf derselben Ausgangsliste basieren, aber gefiltert sein, um keine bereits verwendeten Werte anzuzeigen.Dynamische Elemente der DataGridView ComboBox-Spalte
Zum Beispiel habe ich 4 Dropdown-Optionen: "A", "B", "C" und "D" mit 4 Zeilen. Anfangs werden keine Zeilen auf einen Wert für die Kombinationsfeldspalte gesetzt. Das erste Drop-Down-Fenster, auf das ich klicke, sollte alle Optionen anzeigen. Sagen wir, ich wähle "A". Wenn ich jetzt auf die Drop-Down-Taste in einer anderen Zeile klicke, sollte ich nur noch "B", "C" und "D" sehen, weil "A" bereits benutzt wird.
Ich möchte auch eine leere Option an der Spitze die ganze Zeit.
Wenn ich dies versuche, bekomme ich einen DataRow-Fehler. Ich habe versucht, die ComboBox dynamisch mit CellClick und CellBeginEdit zu setzen. In beiden Fällen bekomme ich unerwartetes Verhalten. Bei einigen Zeilen mit bereits ausgewählten Werten wird der Wert nur geändert, weil der zuvor festgelegte Wert nicht mehr in den Auswahlmöglichkeiten enthalten ist. Manchmal passiert überhaupt nichts.
Nur als eine Anmerkung, ich habe Stack Exchange für ein paar Stunden alle bereit und keine der "Lösungen" tatsächlich funktioniert.
EDIT: Es scheint, dass durch die Verwendung von CellBeginEdit, um die ComboBox-Elemente die zugrunde liegenden Daten in Ordnung ist. Es ist nur der ausgewählte Wert, der im Kombinationsfeld angezeigt wird. Wenn ich nur die Zelle auswähle, ohne das Kombinationsfeld zu verlassen, wird der Wert aktualisiert, so wie er sein sollte.
Es scheint, dass Sie WPF verwenden. Irgendwelche Lösungen für WinForms? – James