我想做一些我认为会很简单的事情。我想要将生成的Entity Framework EntityCollection绑定到WPF DataGrid。我也希望这个网格是可排序的。实体框架4.0与排序不起作用的数据绑定
我已经尝试了各种各样的事情来做到这一点,包括使用CollectionViewSource。然而,似乎没有任何工作。利用绕EntityCollection正常CollectionViewSource给我:
'System.Windows.Data.BindingListCollectionView' view does not support sorting.
好......奇怪。我原以为这会奏效。接下来在CollectionViewSource上,我尝试设置:
CollectionViewType="ListCollectionView"
很好,排序现在有效。但是等等,我现在不能添加或删除使用网格的实体,大概是因为ListCollectionView不支持实体框架上下文。
所以,我想我需要捕获来自datagrid的事件,以便从我的上下文手动添加或删除实体。现在我找不到要捕获的事件来检测添加...!
为什么这么难?这应该是微软应该设计的标准“演示”案例。
任何想法?
是的,ListCollectionView实际上工作。我很困惑,因为通过数据绑定来增加这个数据并没有增加我认为是我绑定到的“根”集合(例如myContext.Employees)。我错误地认为这些是可变的集合,事实上他们并不是这样,而唯一的方法是通过ObjectStateManager来获得我的“新”实体。 – 2010-04-27 13:13:29
这的确看起来很好。很遗憾,默认的EF RAD的东西并没有考虑到这一点。也就是说,请记住,如果您在EF4中使用ListCollectionView CollectionViewType,则必须将AutoGenerateColumns设置为False,以避免获取EntityState和EntityKey列。 – Spooles 2012-04-10 22:59:37