2012-08-13 66 views
0

我想用WPF中的列表填充組合框內容。我通常可以在WinForm中執行它,但wpf看起來有點不同..如何將我的列表綁定到WPF中的組合框中

我沒有在XAML中創建任何代碼。整個控制動態創建,並在運行時間..

所以這裏是我的代碼

cmbKriterKategori是一個組合框。

   cmbKriterKategori.DisplayMemberPath = "Value"; 
       cmbKriterKategori.SelectedValuePath = "Key"; 
       cmbKriterKategori.ItemsSource = yHelper.GetCriterList().ToList(); 

錯誤occours

項目集合必須在使用ItemsSource前空。 。

,我也嘗試過這樣的

   cmbKriterKategori.DisplayMemberPath = "Value"; 
       cmbKriterKategori.SelectedValuePath = "Key"; 
       cmbKriterKategori.DataContext = yHelper.GetCriterList().ToList(); 

它不occour任何錯誤,但處理不當的組合框的任何項目..

yHelper.GetCriterList()ToList();該函數返回列表> 和yHelper.GetCriterList()返回字典

我以前在WinForm的代碼和它的作品..

   cmbKriterKategori.DisplayMember = "Value"; 
       cmbKriterKategori.ValueMember ="Key"; 
       cmbKriterKategori.DataSource = yhelper.GetCriterList().ToList(); 

那麼,是什麼問題?

+0

您是要添加什麼.Items?你不能添加到.Items和.ItemsSource ....一個或其他.....只是設置.ItemsSource,你應該沒事 – 2012-08-13 23:03:59

+0

你可以做到這一點,如果你使用BindingList然而.. – MethodMan 2012-08-13 23:04:40

+0

DJKRAZE和@colinsmith,我很抱歉,但我不能理解你們倆。你是什麼意思? – unbalanced 2012-08-13 23:08:54

回答

0

你要清楚你的組合項目,以便在Items collection must be empty before using ItemsSource異常不會被拋出

 cmbKriterKategori.Items.Clear(); 
     cmbKriterKategori.DisplayMemberPath = "Value"; 
     cmbKriterKategori.SelectedValuePath = "Key"; 
     cmbKriterKategori.ItemsSource = yHelper.GetCriterList().ToList(); 
+0

是的正確..我寫了很多代碼來嘗試一些東西,我忘了刪除它:)但它對我來說真的很好的教訓:) – unbalanced 2012-08-14 01:10:05

相關問題