如何将 EF 数据集与 WPF 数据网格绑定?
How to bind EF dataSet with WPF datagrid?
我无法将我的数据集(来自 EF)与 WPF 数据网格正确连接。我的问题是我的数据网格显示:
- 已选择两列且列正确 header(太棒了 :-)! )
- 所有其他列(包括以上两列)与来自数据库的列 header(我不想要这些列)
这是我的代码:
<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
.
默认情况下,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>
我无法将我的数据集(来自 EF)与 WPF 数据网格正确连接。我的问题是我的数据网格显示:
- 已选择两列且列正确 header(太棒了 :-)! )
- 所有其他列(包括以上两列)与来自数据库的列 header(我不想要这些列)
这是我的代码:
<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
.
默认情况下,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>