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);
}
但错了......
答案 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绑定。但这是另一个重大故事......