C# WPF DataGridView set Values programmatically (.Rows[x].Cells[y].Value) -
i trying port winforms code datagrid wpf application, tried several solutions, nothing worked yet.
code want port:
this.datagridview1.enabled = true; this.datagridview1.rowcount = 0x12; (int = 0; < 0x12; i++) { this.datagridview1.update(); this.datagridview1.rows[i].cells[0].value = i; this.datagridview1.rows[i].cells[1].value = this.getname(i); } the solutions tried:
xaml:
<datagrid name="datagridview1" itemssource="{binding}" autogeneratecolumns="false" margin="176,70,409,92" selectionchanged="datagridview1_selectionchanged" > <datagrid.columns> <datagridtextcolumn binding="{binding clientid}" header="#"/> <datagridtextcolumn binding="{binding clientname}" header="client name"/> </datagrid.columns> </datagrid> c#:
#1: if (datagridview1.rowcount == 1) { datagridview1.rows.add(11); } (uint = 0; < 12; i++) { datagridview1[0, convert.toint32(i)].value = i; datagridview1[1, convert.toint32(i)].value = clientnames(i); } } #2: datatable dt = new datatable(); datacolumn column; column = new datacolumn(); column.datatype = type.gettype("system.string"); column.columnname = "s1"; dt.columns.add(column); column = new datacolumn(); column.datatype = type.gettype("system.string"); column.columnname = "s2"; dt.columns.add(column); if (dt.items.count == 1) { dt.rows.add(11); } (uint = 0; < 12; i++) { datarow row = mydt.newrow(); row["s1"] = i.tostring(); row["s2"] = clientnames(i); dt.rows.add(row); } } #3: datarowview rowview = datagridview1.selecteditem datarowview; datagridview1.enabled = true; datagridview1.items.count = 12; (int = 0; < 12; i++) { datagridview1.update(); rowview.rows[i].cells[0].value = i; rowview.rows[i].cells[1].value = getname(i); } i googling around 3 weeks now, hope can me.
you can write following:
public class datagridviewmodel { public string id{get;set;} public string value{get;set; } ...
(int = 0; < 0x12; i++) { this.models.add(new datagridviewmodel(){id=i,value=getname(i)}; } in xaml:
<datagrid name="datagridview1" itemssource="{binding models}" autogeneratecolumns="false" margin="176,70,409,92" selectionchanged="datagridview1_selectionchanged" > <datagrid.columns> <datagridtextcolumn binding="{binding id}" header="#"/> <datagridtextcolumn binding="{binding value}" header="client name"/> </datagrid.columns> </datagrid> do not forget implement notifypropertychanged if needed. if need further explanations, feel free ask, have shown basic idea in code above.
Comments
Post a Comment