the problem is that DataGrid try to create instant of new MyItem() for new empty row.
So DataType of your ItemSource "must have" a default constructor that accept no params
public class MyItem
// the Constructor with
NO params must declared
//do something or leave nothing.
DataGrid CanUserAddRows only work if.. it can create