3

背景

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

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

问题

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

4

1 回答 1

1

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

我相信ListCollectionView.AddNew 创建的对象类型做了足够相似的事情吗?

我建议花一些时间来了解 ListCollectionView 的所有特性,尽管首先......这并不完全是微不足道的,但它也不是火箭科学。

于 2013-08-29T17:15:13.977 回答