我用C#和WPF技术做了一个应用程序。
我有一种更新Datagrid内容的方法:
dgContact.ItemsSource = db.ContactRepository.GetAllContact();
每次添加或更新后,我都会调用此方法。如果我添加了一条记录,则会在我的网格中显示一条新记录。但如果我更新了一条记录,则更改不会显示在我的网格中(在DB中更改(。
如何根据数据库中的最后一个数据更新Datagrid内容?
感谢
它取决于方法返回的结构类型。
如果您的方法返回非ObservableCollection,那么您可以在将DataGrid.ItemsSource设置为方法之前,将DataGrid1.ItemsSource=null;通过这种方式,您告诉WPF系统发生了更改,您的DataGrid将被更新,如下所示:
private void Update_OnClick(object sender, RoutedEventArgs e) {
this.DataGrid1.ItemsSource = null;
this.DataGrid1.ItemsSource = db.ContactRepository.GetAllContact();
}
另一方面,如果您的方法返回ObservableCollection,只需按照以前的方式设置ItemsSource属性,WPF系统就会检测到更改。
检查这个项目,这样你就可以验证它。
您可以将DataDrid ItemSource绑定到ObservableCollection,尝试对数据库进行更改,然后更新ObservableLibrary,它会在进行更改时发出通知。