我们遇到了一些关于wpf datagrid和IEditableCollectionView的问题(虽然这个问题适用于使用IEditableCollectionView和ItemsControl)当你有一个没有项目的集合时,IEditableCollectionView无法确定应该插入哪些项目,因此它设置{{ 1}}我们找到了一个解决方案here(深入评论中),如下所示:
如果您从ObservableCollection派生出这样的
CanAddNew=false
您会发现,如果初始集合为空,则不会在视图上显示NewItemPlaceHolder。那是因为PersonsList在设计时无法解析类型T.对我有用的解决方法是将类型T作为参数传递给类,如此
public class PersonsList : ObservableCollection<Person> { }
即使集合为空,这种方法也会放置NewItemPlaceHolder。
我想知道是否有一个我可以在我的集合上实现的接口,它告诉IEditableCollectionView要创建的类型,如果我得到AddNew请求。
答案 0 :(得分:1)
尝试在IEditableObject
上实施T
,看看问题是否消失。 Vincent Sibal说这是必要的。但他也声称PersonsList<T>
也是必需的,但你已经想到了这一点。希望IEditableObject
已足够,您可以使用非泛型类。