我有一个由xaml代码生成的Datagrid,如下所示:
<DataGrid Name="DonneesBrutes" ItemsSource="{Binding Resultat}" Margin="10,65,0,0" AutoGenerateColumns="True" ></DataGrid>
我正在尝试将其绑定到我的数据库的一个表,名为BDDInterne的数据库和名为Resultat的表。我使用Entity Framework 5
创建了这个数据库我找到了属性
ItemsSource="{Binding ...}"
但我只看到了在xaml.cs上创建数据的示例,而不是数据库中的表。
希望我提供了足够的信息。如果缺少某些东西,我当然可以更新我的帖子。
如果有人已经做过这种绑定,它可以帮助我。
提前致谢。
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 :(得分:0)
您不能使用EF直接绑定到数据库。
我将如何接近它(使用MVVM模式):
DataGrid
会将ItemsSource
绑定到我的viewmodel上的属性,该属性将是类的集合,类似于ResultatCollection
。该数据网格中的列将绑定到该类类型的属性。ResultatCollection
,并使用适合我试图显示的内容的查询。对你而言,也许就是一切。在viewmodel属性声明中:
private ObservableCollection<Resultat> _resultatCollection;
public ObservableCollection<Resultat> ResultatCollection
{
get { return _resultatCollection; }
set
{
if (value == _resultatCollection) return;
_resultatCollection = value;
RaisePropertyChanged(() => ResultatCollection);
}
}
在虚拟机中的某个时刻,我会调用返回我的数据的服务,然后当它返回数据时,我将使用结果填充我的集合,如下所示:< / p>
ResultatCollection = new ObservableCollection(loadOp.Entities);
是的,这一切都假定视图的DataContext是viewmodel ...