C# 绑定到datagrid的ObservableCollection-使用工厂方法 背景

C# 绑定到datagrid的ObservableCollection-使用工厂方法 背景,c#,wpf,datagrid,C#,Wpf,Datagrid,我正在将datagrid绑定到ObservableCollection。observable集合中的ViewModels没有无参数构造函数,因此CanUserAddNewRows的计算结果为false 据我所知,ObservableCollection在绑定时默认为ListCollectionView,IEditableCollectionViewAddNewItem实现正在内部检查无参数构造函数;禁用AddNew 问题: 如何提供datagrid请求的新对象/工厂?您可以从ListCollec

我正在将datagrid绑定到ObservableCollection。observable集合中的ViewModels没有无参数构造函数,因此CanUserAddNewRows的计算结果为false

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

问题:
如何提供datagrid请求的新对象/工厂?

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

我相信这有足够相似之处吗


我建议先花点时间了解ListCollectionView的所有特性,不过。。。这并不简单,但也不是火箭科学。

你能不能添加一个无参数构造函数,用默认值调用参数化构造函数?不,无参数构造函数不是一个选项。在构建时需要依赖项。谢谢,这就成功了!我从ListCollectionView继承并覆盖了IEditableCollectionView.AddNew、IEditableCollectionView.CancelNew和IEditableCollectionView.Remove