Wir hatten einige Probleme mit dem wpf datagrid und IEditableCollectionView (obwohl diese Frage gilt für die Verwendung von IEditableCollectionView und ItemsControl) Wenn Sie eine Sammlung ohne Elemente in ihm haben, kann die IEditableCollectionView nicht bestimmen, welche Elemente eingefügt werden sollte, so dass es setzt CanAddNew=false
wir haben eine Lösung gefunden aquí (tief in den Kommentaren vergraben), die wie folgt lautet:
Wenn Sie von ObservableCollection wie folgt ableiten
public class PersonsList : ObservableCollection<Person> { }
werden Sie feststellen, dass, wenn die ursprüngliche Sammlung leer ist, kein NewItemPlaceHolder in der Ansicht angezeigt wird. Das liegt daran, dass PersonsList den Typ T zur Entwurfszeit nicht auflösen kann. Ein Workaround, der bei mir funktioniert, ist die Übergabe des Typs T als Parameter an die Klasse wie folgt
PersonsList<T> : ObservableCollection<T> where T : Person { }
Bei diesem Ansatz wird der NewItemPlaceHolder auch dann platziert, wenn die Sammlung leer ist.
Ich frage mich, ob es eine Schnittstelle gibt, die ich auf meine Sammlungen implementieren kann, die die IEditableCollectionView informieren, welche Art zu erstellen, sollte ich eine AddNew-Anforderung erhalten.