将数据网格绑定到列表<字典<字符串,字符串>>
本文关键字:字符串 字典 列表 数据 数据网 网格 绑定 | 更新日期: 2023-09-27 17:56:00
>我正在动态加载我的数据网格列,因为运行时的列数可能会有所不同。列名列表在ProdCatList
中检索。我想模拟将一行添加到我的报价DG数据网格中。
以下是我添加列的方法:
foreach (ProductCategory ProdCat in ProdCatList)
{
DataGridColumn ProdCatColumn = new DataGridTextColumn {Binding = new Binding(ProdCat.Name)};
ProdCatColumn.Header = ProdCat.Name;
QuotationDG.Columns.Add(ProdCatColumn);
}
这就是我尝试添加虚拟行的方式:
List<Dictionary<string, string>> mydictlist = new List<Dictionary<string,string>>();
Dictionary<string, string> mydict = new Dictionary<string, string>();
for (int i=0; i<ProdCatList.Count; i++)
{
mydict.Add(ProdCatList[i].Name, ProdCatList[i].Name);
}
mydictlist.Add(mydict);
QuotationDG.ItemsSource = mydictlist;
}
对于第一个代码,列显示正确,但对于第二个代码,将向 DataGrid 中添加一行,但不显示名称(在字典值中),并且所有列都为空。如何修复此代码以在添加的行中显示数据?
如果你在循环外定义mydist类型,它将使用相同的对象
for (int i=0; i<ProdCatList.Count; i++)
{
Dictionary<string, string> mydict = new Dictionary<string, string>();
mydict.Add(ProdCatList[i].Name, ProdCatList[i].Name);
}
mydictlist.Add(mydict);