2014-03-06 169 views
1

我需要將存儲在列表中的對象綁定到組合框。基本上我需要動態更新組合框項目的列表以便連續執行一組操作。這是我的代碼:WPF綁定對象到組合框

class Broker 
    { 
    public List<Item> FillComboBox() 
    { 
     List<Item> itemList = new List<Item>(); 
     try 
     { 
      string sql = "SELECT * FROM Sklad"; 
      cmd = new SqlCommand(sql, connection); 
      connection.Open(); 

      System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       Item item = new Item(); 

       item.Id = Convert.ToInt32(reader["Id"].ToString()); 
       item.Znacka = reader["Znacka"].ToString(); 
       item.Model = reader["Model"].ToString(); 
       item.Typ = reader["Typ"].ToString(); 
       item.Farba = reader["Farba"].ToString(); 
       item.Mnozstvo = Convert.ToInt32(reader["Mnozstvo"].ToString()); 
       item.NakupnaCena = Convert.ToDouble(reader["NakupnaCena"].ToString()); 
       item.PredajnaCena = Convert.ToDouble(reader["PredajnaCena"].ToString()); 

       itemList.Add(item); 
      } 
      return itemList; 
     } 
     catch (Exception eX) 
     { 
      MessageBox.Show(eX.Message); 
      return null; 
     } 
     finally 
     { 
      if (connection != null) 
      { 
       connection.Close(); 
      } 
     } 
} 

我這樣稱呼它主要是這樣的:

private void FillComboBox() 
    { 
     cmbItems.ItemsSource = broker.FillComboBox(); 
    } 

和它顯然什麼都不做。我錯過了什麼嗎?

+0

檢查以確保FillCombobox實際上返回包含任何內容的列表。 – ouflak

+0

作爲一個測試,我會添加item.ToString()來代替,只是爲了確保你的comboBox使用默認類型。所以試試itemList.Add(item.ToString());這可能是您的組合框根本不知道如何呈現您的項目類型。 – ouflak

+1

爲您顯示XAML組合框 – Paparazzi

回答

0

該代碼是正確的,但我的編譯器被困惑,所以這是問題。簡單的重新打開解決方案幫助!