我们在使用 wpf 数据网格和 IEditableCollectionView 时遇到了一些问题(尽管此问题适用于使用 IEditableCollectionView 和 ItemsControl)当您的集合中没有项目时,IEditableCollectionView 无法确定应该插入哪些项目,因此我们在此处CanAddNew=false
找到了解决方案(深埋在评论中)就像这样:
如果你像这样从 ObservableCollection 派生
public class PersonsList : ObservableCollection<Person> { }
您会发现如果初始集合为空,则视图上不会显示 NewItemPlaceHolder。这是因为 PersonsList 在设计时无法解析类型 T。对我有用的解决方法是将类型 T 作为参数传递给这样的类
PersonsList<T> : ObservableCollection<T> where T : Person { }
即使集合为空,这种方法也会放置 NewItemPlaceHolder。
我想知道我是否可以在我的集合上实现一个接口,通知 IEditableCollectionView 如果我收到 AddNew 请求要创建哪种类型。