c#数据网格绑定问题
本文关键字:绑定 问题 网格 数据网 数据 | 更新日期: 2023-09-27 17:54:56
EditVariationWindowModel edit = (EditVariationWindowModel)this.DataContext;
var datagrid = dataGrid3;
foreach (Variation variation in edit.SelQuestion.Variations)
{
foreach (var parameter in variation.QuestionParameters)
{
var binding = new Binding(parameter.Value);
var column = new DataGridTextColumn();
column.Header = parameter.Key.Name;
column.Binding = binding;
datagrid.Columns.Add(column);
}
}
所以这是我的代码在后面的代码为我的数据网格。我在wpf工作。
现在问题是什么:我只是得到一行,但许多重复的列标题(与正确的绑定),但正如你已经理解的,我不希望他们彼此相邻,但在彼此之下。例如:
not like this
header1 | header2 | header1 | header2|
string1 | string2 | string 1| string2|
,
header1 | header2
string1 | string2
string1 | string2
有谁知道我怎么解决这个问题吗?
您必须先添加所有列,然后在添加数据时选择它们。
你所做的是添加一个绑定到一个新列。
编辑:当我必须手动添加行时,我通常做的是:
1。-将dataccolumn添加到DataTable,将ColumnStyle添加到DataGrid,就像:
DataColumn fNameColumn8 = new DataColumn();
fNameColumn8.DataType = System.Type.GetType("System.String");
m_dataTable.Columns.Add(fNameColumn8);
ColumnStyle myStyleColumn8 = new ColumnStyle(7);
myStyleColumn8.TextAlign = ContentAlignment.TopRight;
DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();
dataGridTableStyle.MappingName = MAPPINGNAME;
dataGridTableStyle.GridColumnStyles.Add(myStyleColumn8);
this.dataGrid.TableStyles.Add(dataGridTableStyle);
2。-指定映射名称和显示名称给dataGrid的ColumnStyles和DataTable的Columns:
m_dataTable.Columns[8].ColumnName = this.m_strHeader;
((DataGridTextBoxColumn)this.dataGrid.TableStyles[0].GridColumnStyles[8]).MappingName = this.m_strHeader;
((DataGridTextBoxColumn)this.dataGrid.TableStyles[0].GridColumnStyles[8]).HeaderText = this.m_strHeader;
3。—在DataGrid的ColumnStyles中指定列的宽度:
((DataGridTextBoxColumn)this.dataGrid.TableStyles[0].GridColumnStyles[8]).Width = 20;
4。-填充行:
DataRow dataRow = this.m_dataTable.NewRow();
dataRow[this.m_strHeader] = "DATA";
this.m_dataTable.Rows.Add(dataRow);
您正在为每一行添加列定义…WTF ?
这是一个关于如何将DataGrid绑定到Collection的不错的教程。
欢呼。基斯。
编辑:
试
foreach (var parameter in edit.SelQuestion.Variations.First().QuestionParameters)
来定义你的网格列…参见:第一个方法
然后(作为一个单独的步骤)通过迭代变量来填充数据网格…或者最好还是READ上面链接的文章,并将网格绑定到集合。不需要纠结于定义列和遍历每一行……网格可以自动完成所有这些