如何将 EF 数据集与 WPF 数据网格绑定?

How to bind EF dataSet with WPF datagrid?

我无法将我的数据集(来自 EF)与 WPF 数据网格正确连接。我的问题是我的数据网格显示:

这是我的代码:

<DataGrid  Name="dataGridDomaines" Grid.Row="4" IsReadOnly="True" ItemsSource="{Binding}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Nom Domaine" Width="300" Binding="{Binding Path=NomDomaine}"></DataGridTextColumn>
            <DataGridTextColumn Header="N° Inter" Width="100" Binding="{Binding Path=idOpérateur}"></DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

并且:

private void Rechercher(string elementARechercher){
        using (CaveAVinContext ctx = new CaveAVinContext())
        {
            //recherche des domaines
            var domaines = ctx.Domaines
                .Where(a => a.NomDomaine.Contains(elementARechercher))
                .ToList();
            dataGridDomaines.ItemsSource = domaines;
            lblDomaines.Content = "Domaine(s) : " + domaines.Count + " resultat(s)";


        }
    }

怎么了?

Datagrid Autogeneratecolumns 设置为 False。 * 请注意,此 属性 的默认值为 True.

默认情况下,DataGridAutoGenerateColumns 属性 为真,这将导致它将所有列附加到您直接指定的任何内容的末尾。

只需将其设置为 false,您就可以开始了。

<DataGrid  Name="dataGridDomaines" Grid.Row="4" 
       IsReadOnly="True" ItemsSource="{Binding}"
       AutoGenerateColumns="false">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Nom Domaine" Width="300" Binding="{Binding Path=NomDomaine}"></DataGridTextColumn>
        <DataGridTextColumn Header="N° Inter" Width="100" Binding="{Binding Path=idOpérateur}"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>