0

xml:

<ComboBox SelectionChanged="status_SelectionChanged" Height="23" Name="status" ItemsSource="{Binding}" Width="120">
</ComboBox>

如何将数据库中的项目添加为组合框的 ItemsSource?

MySqlCommand status_db = new MySqlCommand("select name from request_status", conn);

所以:

List<string> combolist = new List<string>();
            MySqlDataReader reader = status_db.ExecuteReader();
            while (reader.Read())
            {
                combolist.Add((string)reader);
            }

但是错了……

4

3 回答 3

0

最好用你的项目填写一个列表,例如List<request_status> myList从你的数据库中,然后设置myList为你的 ItemsSource

ItemsSource="{Binding Path=myList}"
于 2012-07-10T07:44:45.847 回答
0

您在 ComboBox 中拥有 Binding 的方式ItemsSource="{Binding}"意味着您需要将 ComboBox 的 DataContext 设置为 SQl 查询中的列表:

MySqlCommand status_db = new MySqlCommand("select name from request_status", conn);
// build a list from the query
ObservableCollection<YourType> listElements = From_SQL_QUeury;
ComboOne.DataContext = listElements; // add x:Name="ComboOne" in the XAML for your comboxBox.
于 2012-07-10T08:04:39.917 回答
0

使用您已经向我们展示的代码,ItemsSource={Binding}从您的组合框 xaml 中删除该部分。

然后只需添加:

status.ItemsSource = comboList;

我认为这足以为您完成工作,但您必须考虑使用 xaml 绑定。但这是另一个大故事……

于 2012-07-10T08:42:51.870 回答