簡體   English   中英

將DataGrid綁定到列表 <Dictionary<string,string> &gt;

[英]Bind DataGrid to List<Dictionary<string,string>>

我正在動態加載我的datagrid列,因為在運行時列數可能會有所不同。 列名列表在ProdCatList中檢索。我想模擬向QuotationDG Datagrid中添加一行。

這是我添加列的方法:

 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM