[英]c# wpf combobox selection
我试图根据第一选择改变第二个组合框。 对于第一个组合框,我从数据库中的表中获取数据。
{
SqlConnection conn = new SqlConnection("Server = localhost;Database = autoser; Integrated Security = true");
SqlDataAdapter da = new SqlDataAdapter("Select id_type,type FROM types", conn);
DataSet ds = new DataSet();
da.Fill(ds, "types");
typescb.ItemsSource = ds.Tables[0].DefaultView;
typescb.DisplayMemberPath = ds.Tables[0].Columns["type"].ToString();
typescb.SelectedValuePath = ds.Tables[0].Columns["id_type"].ToString();
}
例如,如果在第一个组合框中我选择卡车在秒中应该显示卡车列表,或者如果我选择汽车,则在秒中应该出现在我的数据库中的汽车列表。 我查看了这个网站上的一些帖子,他们没有帮助我,所以我发布了这个问题。 对不起,我的英语不好!
当您选择一个类别(也就是您的第一个ComboBox
的项目)时,例如汽车 ,您可以从存储车辆的数据库中读取数据,而不是按“ 汽车 ”类型过滤它们。
例如在LINQ中:
var cars = readFromDbList.Where(item => item.Type == "car");
当然,此示例使用类型作为字符串,而item
对象具有Type
属性,但您将使用自己的实现。
使用WPF的一个好处是使用绑定来更新UI。 在这种情况下,您试图强制UI更新。 您的UI应根据下划线数据模型的更改进行更新。 我建议使用SQLMetal生成ORM层,使用LINQ获取数据,使用WPF进行渲染。
不久前我写了一篇关于设置它的文章。 http://netlegger.blogspot.ca/2013/05/using-linq-to-sql-with-sqlmetal-wpf.html
当您完成所有设置后,可以根据属性更改事件触发绑定。 您在下划线数据模型中更改的任何内容都将反映在UI中。
你应该是SelectIndexChange事件的代码..
con.Open(); string str =“select * from Tablename where CarName ='”+ ComboBox1.Text +“'”Groupby CarName; SqlCommand cmd = new SqlCommand(str,con); SqlDataReader dr = cmd.ExecuteReader(); if(dr.Read()){ComboBox1.Text = dr [“CarName”]。ToString();
con.Close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.