WPF中的组合框数据绑定

时间:2018-04-24 21:16:39

标签: c# sql-server

我有一个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)
        {

        }
    }
}

}

1 个答案:

答案 0 :(得分:1)

combovehicle.DisplayMemberPath = "RegNumber"; 
combovehicle.SelectedValue= "Make";     
combovehicle.DataContext = ds.Tables[0];  

所以你告诉WPF使用属性MakeRegNumber

进行显示

但您传入了DataTable对象

DataRow确实提供了用于访问属性的索引器,但它不包含这些属性。加DataTable不是IEnumerable,因此您无法将其用作数据源。

最重要的是,你做错了。您几乎不应该直接在视图中进行数据库调用,并将数据源设置为输出表。你应该通过MVVM模式这样做。