Take a look at the Providing Unbound Data example in the Providing Data topic.
From the same topic:
The DataGridCollectionView supports insertion as long as the underlying DataGridCollectionView-wrapped collection implements the IBindingList interface (you can also use BindingList<>) and its AllowNew property returns true. In this case, the AddNew method can be used to add new data items to the underlying collection, while the EndNew and CancelNew methods can be used to commit the new item or cancel its addition.
As for being able to edit, are the properties in your data object get/set? Ifyou provide your data after the Window has loaded, do you see your data?
Technical Writer - Xceed Software
Of all the things I've lost, I miss my mind the most. - Mark Twain