绑定到datagrid的ObservableCollection - 使用工厂方法

时间:2013-08-27 03:11:19

标签: c# wpf datagrid

背景

我正在将数据网格绑定到ObservableCollection。可观察集合中的ViewModel没有无参数构造函数,因此CanUserAddNewRows的计算结果为false。

据我所知,ObservableCollection在绑定时默认为ListCollectionView,IEditableCollectionViewAddNewItem实现在内部检查无参数构造函数;禁用AddNew。

问题

如何提供数据网格请求的新对象/工厂?

1 个答案:

答案 0 :(得分:1)

您可以从ListCollectionView派生并自定义其行为;然后你可以将它用作ObservableCollection的包装器并绑定到它而不是直接绑定到OC。当绑定到集合时,WPF无论如何都会在幕后创建一个ICollectionView,如果你直接提供它,它将使用它。

我相信Type of object created by ListCollectionView.AddNew做了类似的事情吗?

我建议花一些时间来了解ListCollectionView的所有特性,虽然它首先......它并非完全无关紧要,但它也不是火箭科学。