我无法与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)";
}
}
怎么了?
默认情况下, DataGrid
的 AutoGenerateColumns
属性是正确的,这会导致其将所有列附加到您直接指定的内容的末尾。
只是将其设置为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
。