在数据网格中绑定组合框

时间:2012-07-10 07:41:29

标签: c# wpf

XAML:

<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);
            }

但错了......

3 个答案:

答案 0 :(得分:0)

最好从数据库中填入包含项目的列表,例如List<request_status> myList,然后将myList设置为ItemsSource

ItemsSource="{Binding Path=myList}"

答案 1 :(得分:0)

您在ComboBox ItemsSource="{Binding}"中拥有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.

答案 2 :(得分:0)

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

然后添加:

status.ItemsSource = comboList;

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