У нас были некоторые проблемы с wpf datagrid и 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.