刷新鼠标双击事件上的绑定数据网格
本文关键字:绑定 数据 数据网 网格 鼠标 双击 事件 刷新 | 更新日期: 2023-09-27 18:20:41
在ListBoxItem上,我有一个MouseDoubleClick事件,如下所示:
<ListBox HorizontalAlignment="Left" Height="84" Margin="97,599,0,0" VerticalAlignment="Top" Width="88">
<ListBoxItem MouseDoubleClick="Ajout_MouseDoubleClick" Name="Ajouts" Content="Ajouts"/>
The event is as follow:
private void Ajout_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DbSet<Resultat> res = cnn.Resultat;
var add = from a in res
where a.Remarque.Equals("Ajoute")
select new { a.Groupe_D_alerte, a.LibelléTOTApres, a.LibelléTOTAvant, a.NomChamp, a.NomTable, a.Remarque, a.SiModifie, a.TOTMPMRQ };
cnn.SaveChanges();
DonneesBrutes.Items.Refresh();
}
它应该做的是将一个LinQ请求实现到名为Resultat的DbSet中。这是一个列中的简单过滤器,在本例中为"Remarque"。在DbSet中应用此筛选器后,我需要刷新DbSet"Remarque"的DataGrid绑定目标
DataGrid看起来是这样的:
<DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=.ResultatCollection}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="PMRQ" Width="*" Binding="{Binding Path=.TOTMPMRQ}" Header="PMRQ"></DataGridTextColumn>
<DataGridTextColumn x:Name="LibellePMRQ" Width="*" Binding="{Binding Path=.LibelléTOTApres}" Header="Libellé PMRQ"></DataGridTextColumn>
<DataGridTextColumn x:Name="Ligne" Width="*" Binding="{Binding Path=.Remarque}" Header="Ligne"></DataGridTextColumn>
<DataGridTextColumn x:Name="OTM" Width="*" Binding="{Binding Path=.TOTMPMRQ}" Header="OTM"></DataGridTextColumn>
<DataGridTextColumn x:Name="TOTM" Width="*" Binding="{Binding Path=.SiModifie}" Header="TOTM"></DataGridTextColumn>
<DataGridTextColumn x:Name="LibelleTOTM" Width="*" Binding="{Binding Path=.LibelléTOTApres}" Header="Libellé OTM"></DataGridTextColumn>
<DataGridTextColumn x:Name="GA" Width="*" Binding="{Binding Path=.Groupe_D_alerte}" Header="GA"></DataGridTextColumn>
<DataGridTextColumn x:Name="Discipline" Width="*" Binding="{Binding Path=.NomTable}" Header="Discipline"></DataGridTextColumn>
<DataGridTextColumn x:Name="DisciplineSubstituee" Width="120" Binding="{Binding Path=.NomChamp}" Header="Discipline Substituée"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
当我双击时,脚本会自己执行,但什么也没发生,我看不到DataGrid中应用的过滤器(要将数据从DbSet绑定到DataGrid,我使用ObservableCollection)
WPF是而不是WinForms。没有DataGrid.Refresh
方法。我们不刷新UI控件。在WPF中,我们使用数据绑定并实现INotifyPropertyChanged
接口来在UI和代码隐藏或视图模型之间传播属性更改。因此,当我们对数据对象或与UI控件绑定的数据对象进行更改时,更新是立即的。因此,我们没有必要"刷新"任何内容。
有关此主题的详细信息,请参阅MSDN上的"数据绑定概述"页。