wxGridCellChoiceEditor: mögliche Auswahlen erneuern
-
Hallo,
wie kann man die Auswahlmöglichkeiten ändern?
als erstes wird eine Zelle von einem wxGrid mit einem wxGridCellChoiceEditor belegt:
// choices ist ein "wxString *" mit N Elementen this->_grid->SetCellEditor(0, 0, new wxGridCellChoiceEditor(N, choices));
Ändern müsste dann eigentlich mit SetParameters() funktioniern,
indem man die neuen Items Kommagetrennt mitgibt.// die neuen Items holen (getrennt durch Komma) wxString choicesStr = this->_getValidChoicesForCol(0); // Neue Werte setzten. this->_grid->GetCellEditor(0, 0)->SetParameters(choicesStr);
Leider geht das ganze scheinbar nur ein einziges mal:
Beim ersten mal werden alle Items neu gesetzt (entsprechend
dem Inhalt von "choicesStr".
Bei jedem weiteren Aufruf bleiben die alten Werte in der Anzeige erhalten.
Es kommen weder neue Werte hinzu, noch werden welche rausgelöscht.Bin wirklich ratlos...
Martin
-
falls es wen interessiert:
als workaround:Statt die Werte neu setzten, den wxGridCellChoiceEditor durch einen neuen
ersetzen:// den alten Editor zwischenspeichern wxGridCellEditor * oldEditor = this->_grid->GetCellEditor(row, col); // die neuen Auswahlmöglichkeiten anfordern wxArrayString choices; this->_getValidChoicesForCol(col, choices); // neuen Editor mit den neuen Werten erzeugen und einsetzen this->_grid->SetCellEditor(0, col, new wxGridCellChoiceEditor(choices)); // alten Editor löschen oldEditor->Destroy();