2014-03-06 168 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

该代码是正确的,但我的编译器被困惑,所以这是问题。简单的重新打开解决方案帮助!