2010-02-25 84 views
1

我从CollectionViewSource中填充DataGrid。每一行都有一个删除按钮。 关于删除,我正在删除数据库中的一行。 我的问题是DataGrids的用户界面不会更新。 如何清除DataGrid中已删除的行?如何从datagrid中删除一行

有什么建议吗?

回答

1

确保基础集合实现INotifyPropertyChanged接口,并在删除行时调用OnPropertyChanged。

ObservableCollection是一个实现INotifyPropertyChanged的融合,因此可以考虑使用它作为基础集合对象。上CollectionViewSource

CollectionViewSource

MSDN备注为 的CollectionView类的代理,或从的CollectionView派生的类 。 CollectionViewSource使XAML代码 可以设置常用的 CollectionView属性,并将这些设置传递给底层视图。 CollectionViewSource具有包含实际视图 的视图 属性和包含 源集合的Source属性。

你可以把一个集合视图 上绑定源 集合,它允许您根据 排序,筛选和分组查询导航 并显示集合顶部的一层,所有 ,而无需操纵底层源代码集本身就是 。 如果源收集实现 INotifyCollectionChanged 接口,由 CollectionChanged事件引发的更改将传播 到视图。

由于视图不会更改基础源集合中的 ,因此每个源集合可以有多个与其相关的 视图。例如, 您可能收集了任务 对象。通过使用视图,您可以以不同方式显示 中的相同数据。例如,在您的页面的左侧 上,您可能想要 显示按优先级排序的任务,并在 右侧,按区域分组。

欲了解更多信息,请参阅数据 绑定概述中绑定 收藏夹部分。

+0

谢谢! 更改为ObservableCollection是我需要的! – Reuven 2010-03-01 07:02:38

1

您还应该从CollectionViewSource中删除该行数据。或者再次从数据库移动CollectionViewSource。

谢谢