如何使用WPF DataGrid绑定EF数据集



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

  • 两个带有正确列标头的选定列(Great :-)!)
  • 所有其他列(包括上面的两个),带有数据库中的列标题(我不想要这些列)

这是我的代码:

<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)";

        }
    }

怎么了?

默认情况下, 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>

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

相关内容

  • 没有找到相关文章

最新更新