DataGridBoolColumn

shok

Mitglied
Ich habe ein paar Fragen zu DataGridBoolColumn-Klasse.
Hier ist erstmal ein Teil meines Codes, der ein
DataGridBoolColumn- Objekt meinem datagrid3 hinzufügt.
Code:
----------------------------------------------------------
DataColumn Current1 = new DataColumn("Current", typeof
(bool));

DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = "testtabelle";

ds3gui.Tables["testtabelle"].Columns.Add(Current1);
ds3gui.Tables["testtabelle"].Columns[1].ColumnName 
= "spalte";	
			
DataGridBoolColumn boolCol = new DataGridBoolColumn();
boolCol.MappingName = "spalte";
boolCol.HeaderText = "spalte";
boolCol.Width = 30;

tableStyle.GridColumnStyles.Add(boolCol);

dataGrid3.TableStyles.Clear();
dataGrid3.TableStyles.Add(tableStyle);
dataGrid3.SetDataBinding(ds3gui,"testtabelle");

1.wenn ich der testtabelle statt mit .add(Current1);
einfach so eine Zeile hinzufüge(ds3gui.Tables
["testtabelle"].Columns.Add();).
Kann ich später auf der Oberfläche in dem DataGrid zwar
die Werte in den Checkboxen ändern, aber sobald ich eine
andere auswähle, wird der Wert wieder auf grau
und "nicht bearbeitete checkbox zurückgesetzt". Sobald
ich die typeofboolean DataColumn adde, behalten die
CheckBoxen ihre Änderungen bei.
Muss ich irgendwas am boolCol Objekt ändern?

2. Ich kann die Werte nur über das dataset ändern :
ds3.Tables["testtabelle"].Rows[ i ]["spalte"]= true;
Das muss doch irgendwie über das boolCol-Objekt gehen.
Aber es ist mir unmöglich einzelne Zeilen bzw.
Checkboxen in dem Objekt anzusprechen und ihre Werte zu
setzten. Ich verstehe das nicht. Dafür ist es doch da.

danke im voraus

mfg
 
Sorry das habe ich vergessen. Am wichtigsten ist mir eigentlich, dass ich einzelne Checkboxen auf readonly setzten kann und nicht nur die ganze spalte.
 
Das Problem mit den Three-State Check-Boxen hatte ich auch ...

Ich Hab es umgangen indem ich anstatt die Werte True/False zuzuweisen einfach die Werte 0 & 1 genommen habe.

Um das Three-State ganz wegzubekommen, einfach als Default DBNULL Wert auch die 0 nehmen und nicht <DBNull>

Wenn es noch unklar ist, bitte noch mal nachfragen ...

Etwas Umständlich aber effektiv: Einen Bool-Wert aus einer DataTable in einer CheckBox in einem DataGrid darstellen:
Code:
If cRow(dt_MängelListe.Columns("Behoben")) = True Then
    schmiermerker = 1
Else
    schmiermerker = 0
End If
DataSet1.Tables("Table1").Rows(BindingContext(DataView1).Position).Item("Behoben") = schmiermerker
 
Zuletzt bearbeitet:
Zurück