Currently, within the LoadItems() method the items are being iterated directly, thus a second query to the database is triggered. A separate list for this operation should be created.
Currently, when you click F2 or double mouse click in order to start editing a cell (with a TextBox editor) its text gets selected. This happens because the SelectAll() method of the underlying TextBox is called. Add a property that allows to disable this behavior and to avoid selecting the text.
At this point you can get this effect by creating a custom column and overriding its PrepareCellForEdit() method as shown here: https://docs.telerik.com/devtools/wpf/knowledge-base/kb-gridview-prevent-f2-text-selection
It is difficult to track whether the newly added items are pasted or not crated by insert.
Not all of the FilteringControl elements have automation IDs. This fact prevents the proper usage of some automation frameworks.
Currently the new item's properties are validated before editing their values, which is not intuitive, especially for Required, MinLength etc. The correct behavior would suggest that validation should be applied only to "confirmed" property values.
Currently all of the MoveCurrentTo methods rely on the internal logic of MoveCurrentToPositionCore and users cannot override it through inheritance.