![](/img/trans.png)
[英]WPF MVVM Bind Dictionary<String, List<String>> to datagrid
[英]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.