2014-08-28 38 views
0

结合我有XAML代码这样产生一个DataGrid:XAML中的DataGrid从数据库表

<DataGrid Name="DonneesBrutes" ItemsSource="{Binding Resultat}" Margin="10,65,0,0" AutoGenerateColumns="True" ></DataGrid> 

我试图把它绑定到我的数据库的一个表,名为BDDInterne数据库和表命名Resultat。我创建了使用实体框架该数据库5

我已经找到了物业

ItemsSource="{Binding ...}" 

,但我只看到与在xaml.cs创建的,而不是从数据库中的表DATAS例子。

希望我给了足够的信息。我当然可以更新我的帖子,如果有东西丢失。

如果有人已经做了这种绑定,它可以帮助我。

在此先感谢。

EDIT1:

这是产生Resultat代码:

public partial class Resultat 
{ 
    public string NomTable { get; set; } 
    public string Groupe_D_alerte { get; set; } 
    public string NomChamp { get; set; } 
    public string TOTMPMRQ { get; set; } 
    public string SiModifie { get; set; } 
    public string LibelléTOTAvant { get; set; } 
    public string LibelléTOTApres { get; set; } 
    public string Remarque { get; set; } 
} 
+0

也请分享代码来生成/检索'Resultat' – pushpraj 2014-08-28 08:12:17

+0

如果你想直接链接到数据库,'EntityFramework'是一个常用的方法:http://msdn.microsoft.com/en-us/data /jj574514.aspx – Damascus 2014-08-28 08:13:40

+0

@Damascus的声音我还没有声明DataContext,这是我的错误之一,我想。 – Kraenys 2014-08-28 08:19:25

回答

0

你不直接绑定到与EF数据库。

我怎么会(使用MVVM模式)来解决:

  1. 我的观点将结合ItemsSource在我的视图模型的属性,这将是类的集合,像ResultatCollectionDataGrid。该数据网格中的列将绑定到该类类型的属性。
  2. 我的虚拟机会调用一个服务,该服务利用EntityFramework来填充ResultatCollection,其查询适合我要显示的内容。对你来说,也许这就是一切。

在视图模型属性声明:

private ObservableCollection<Resultat> _resultatCollection; 
public ObservableCollection<Resultat> ResultatCollection 
{ 
    get { return _resultatCollection; } 
    set 
    { 
     if (value == _resultatCollection) return; 
     _resultatCollection = value; 
     RaisePropertyChanged(() => ResultatCollection); 
    } 
} 

在虚拟机某些时候,我会让到返回我的数据服务的调用,然后当它返回的数据我会填充我收集的结果,这样的事情:

ResultatCollection = new ObservableCollection(loadOp.Entities); 

是的,这一切都假定视图的DataContext的是视图模型...

+0

我在哪里写'ResultatCollection = new ObservableCollection(loadOp.Entities);'?如果我将它写出'Public ObservableCollection ResultatCollection',我有很多错误,如果我写入它,我有一个get或set访问器。另一方面,'RaisePropertyChanged'在当前上下文中不存在。 – Kraenys 2014-08-28 12:42:27

+0

您打电话给您的服务(可能在您的虚拟机的构造函数中,可能是由用户操作驱动的)。这通常是异步的。在从异步返回(或者如果你正在使用await异步模式,你只是等待结果),你会得到结果。对我而言,这些结果将作为带实体属性的loadOp返回(因为我使用RIA服务)。对他们来说,他们可能是另一种形式。 – Mashton 2014-08-28 14:27:27

+0

所以你不能复制粘贴我的代码,我把它作为几个关键点的例子。 (a)如何获得我的结果(b)我是否使用MVVM – Mashton 2014-08-28 14:28:35