数据库表中的Xaml DataGrid绑定

本文关键字:DataGrid 绑定 Xaml 数据库 | 更新日期: 2023-09-27 18:19:38

我有一个由xaml代码生成的数据网格,如下所示:

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

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

我找到了

ItemsSource="{Binding ...}" 

但我只看到了在xaml.cs上创建数据的例子,而没有看到数据库中的表。

希望我提供了足够的信息。如果有什么遗漏,我当然可以更新我的帖子。

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

提前谢谢。

第1版:

这是生成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; }
}

数据库表中的Xaml DataGrid绑定

您不使用EF直接绑定到数据库。

我将如何处理它(使用MVVM模式):

  1. 视图上的DataGrid会将ItemsSource绑定到视图模型上的一个属性,该属性将是类的集合,类似于ResultatCollection。该数据网格中的列将绑定到该类类型的属性
  2. 我的VM将使用对一个服务的调用,该服务使用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是视图模型。。。