2015-06-14 163 views
0

我正在加載我的datagrid列,因爲列的數量在運行時可能會有所不同。在ProdCatList中檢索列名稱列表。我想模擬向QuotationDG Datagrid中添加單行。將DataGrid綁定到List <Dictionary <string,string >>

這是我怎麼加我的專欄:

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中,但不顯示名稱(在字典值中),並且所有列都是空白的。 我該如何修復這段代碼以顯示添加的行中的數據?

回答

0

您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); 
+0

是外面,但是這是我需要做,幾個鍵和值添加到同mydict對象。這樣我可以使用mydict來表示我的行(有很多列) – user3340627

相關問題