Die Verwendung von benutzerdefinierten CheckBoxComboBox-Steuerelement in DataGridView ist abgeschlossen. Zuerst habe ich eine DataGridViewTextBoxColumn oder eine andere gemäß Ihrer Anforderung hinzugefügt und dann die benutzerdefinierte CheckBoxComboBox-Spalte in dieser DataGridView auf folgende Weise hinzugefügt. Zuerst müssen Sie die Liste der Elemente zu schaffen, in diesem Kombinationsfeld
List<Status> statuses = new List<Status>();
statuses.Add(new Status(1, "Sunday"));
statuses.Add(new Status(2, "Monday"));
statuses.Add(new Status(3, "Tuesday"));
statuses.Add(new Status(4, "Wednesday"));
statuses.Add(new Status(5, "Thursday"));
statuses.Add(new Status(6, "Friday"));
statuses.Add(new Status(7, "Saturday"));
gezeigt werden, dann müssen Sie das Objekt von DataGridViewCheckBoxComboBoxColumn erstellen
DataGridViewCheckBoxComboBoxColumn comboboxColumn = new DataGridViewCheckBoxComboBoxColumn();
ein Objekt von ListSelectionWrapper erstellen aus dieser Liste Objektstatus und legen Sie die TextSeparator-Eigenschaft fest. In
ListSelectionWrapper<Object> wrappedList = new ListSelectionWrapper<Object>(statuses);
wrappedList.TextSeparator = comboboxColumn.TextSeparator;
comboboxColumn andere Eigenschaften als
comboboxColumn.DataSource = wrappedList;
comboboxColumn.ValueMember = "Selected";
comboboxColumn.DisplayMemberSingleItem = "Name";
comboboxColumn.DisplayMember = "NameConcatenated";
Und dann legen Sie die Spalte in Datagridview
dgvKioskList.Columns.Add(comboboxColumn);
Danach Ihre Spalte in der Datagridview eingesetzt ist.Jetzt eine neue Zeile mit einzufügen einige Listenelemente vorgewählten, müssen Sie wie
Dictionary<String, Object> objSelectedDays = new Dictionary<String, Object>();
ein Dictionary-Objekt erstellen Wenn Sie den Sonntag und Dienstag von der ComboBox beispielsweise auswählen möchten, könnten Sie schreiben
objSelectedDays.Add("Sunday", statuses[0]);
objSelectedDays.Add("Tuesday", statuses[2]);
Danach, wenn Sie eine neue Zeile in Datagridview mit Ihren anderen Daten einfügen und dieses objSelectedDays Objekt, wird die neue Zeile Raster
hinzugefügt werden
datagridView1.Rows.Add("ID1", objSelectedDays);
wo „ID1“ i s eingeführt in einfache DataGridViewTextBoxColumn
Wenn Sie die ausgewählten Werte aus dem Datenraster lesen wollen, dann geben Sie die Zelle in Dictionary-Objekt wie
var values = datagridView1.Rows[0].Cells[1].Value as Dictionary<String, Object>;
gegossen und dann Schleife, obwohl die Werte Array-Objekt aus den ausgewählten Werten lesen die einzelnen Zeilen CheckBoxComboBox-Steuerelement