将数据网格绑定到列表<字典<字符串,字符串>>

本文关键字:字符串 字典 列表 数据 数据网 网格 绑定 | 更新日期: 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);