WPF:IEditableCollectionView和CanAddNew以及空集合

时间:2010-04-21 06:25:16

标签: wpf ieditablecollectionview

我们遇到了一些关于wpf datagrid和IEditableCollectionView的问题(虽然这个问题适用于使用IEditableCollectionView和ItemsControl)当你有一个没有项目的集合时,IEditableCollectionView无法确定应该插入哪些项目,因此它设置{{ 1}}我们找到了一个解决方案here(深入评论中),如下所示:

如果您从ObservableCollection派生出这样的

CanAddNew=false

您会发现,如果初始集合为空,则不会在视图上显示NewItemPlaceHolder。那是因为PersonsList在设计时无法解析类型T.对我有用的解决方法是将类型T作为参数传递给类,如此

public class PersonsList : ObservableCollection<Person> { }

即使集合为空,这种方法也会放置NewItemPlaceHolder。

我想知道是否有一个我可以在我的集合上实现的接口,它告诉IEditableCollectionView要创建的类型,如果我得到AddNew请求。

1 个答案:

答案 0 :(得分:1)

尝试在IEditableObject上实施T,看看问题是否消失。 Vincent Sibal说这是必要的。但他也声称PersonsList<T>也是必需的,但你已经想到了这一点。希望IEditableObject已足够,您可以使用非泛型类。