我有一个wpf形式的组合框。我想将它绑定到MS SQL服务器中的表。但是,每次运行我的代码时,我都会遇到错误。任何援助将不胜感激。以下是我的代码:
private void OnLoad(object sender, RoutedEventArgs e)
{
FillComboBox();
}
protected void FillComboBox()
{
SqlConnection con = new SqlConnection(cs);
DataSet ds = new DataSet();
try
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT RegNumber,Make FROM Vehicles GROUP BY RegNumber,Make", con);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
combovehicle.DisplayMemberPath = "RegNumber";
combovehicle.SelectedValue= "Make";
combovehicle.DataContext = ds.Tables[0];
}
catch(Exception)
{
}
}
}
}
答案 0 :(得分:1)
combovehicle.DisplayMemberPath = "RegNumber";
combovehicle.SelectedValue= "Make";
combovehicle.DataContext = ds.Tables[0];
所以你告诉WPF使用属性Make
和RegNumber
但您传入了DataTable
对象
DataRow
确实提供了用于访问属性的索引器,但它不包含这些属性。加DataTable
不是IEnumerable
,因此您无法将其用作数据源。
最重要的是,你做错了。您几乎不应该直接在视图中进行数据库调用,并将数据源设置为输出表。你应该通过MVVM模式这样做。