使用DbContext在wpf控件中显示数据

时间:2014-01-01 19:58:03

标签: c# wpf entity-framework

我不知道如何使用DbContext在Wpf数据控件中将数据显示为ListView,ListBox或DataGrid。

我正在使用数据库第一种方法,VS2012。

我有一个包含一个表的数据库(最简单的情况)。

enter image description here

然后我添加了一个ADO Net实体数据模型,它为我的项目添加了几个类,其中包括OneTableEntities:DbContext:

enter image description here

现在我在Wpf窗口中有一个ListBox,我将listbox.ItemsSource绑定到什么?我试过“listBox.ItemsSource = context.MyTables;”但是我得到了这个错误:

  

直接将数据绑定到商店查询(DbSet,DbQuery,DbSqlQuery)   不支持。而是使用数据填充DbSet,例如   在DbSet上调用Load,然后绑定到本地数据。对于WPF绑定   到DbSet.Local。对于WinForms绑定到DbSet.Local.ToBindingList()。

加载操作在哪里?,如何填充本地商店?

1 个答案:

答案 0 :(得分:2)

如错误消息所示,您无法将控件绑定到查询。使用ToList()执行数据库查询并将结果保存到内存中集合。然后,您将能够将此集合绑定到列表框:

listBox.ItemsSource = context.MyTables.ToList();

您可以直接在错误消息中找到另一个选项:

context.MyTables.Load(); 
listBox.ItemsSource = context.MyTables.Local;