Ваш пример не соответствует, так как у вас установлено DataObjectTypeName, но ваш метод LeasesDS_Inserting добавляет параметры, как будто это не так.
Если вам не нужен DataObjectTypeName, вы можете удалить его, и тогда у вас будет больше шансов заставить его работать.
Если вам нужен DataObjectTypeName или вы просто предпочитаете его (как я), есть способ заставить это работать, но это не очень красиво.
В вашем методе LeasesGrid_RowCommand вы можете использовать такой код, чтобы получить представление:
IDataSource ds = (IDataSource)LeasesDS;
DataSourceView view = ds.GetView(LeasesGrid.DataMember);
После получения представления вы можете создать словарь, содержащий значения, которые необходимо записать в объект данных, который в конечном итоге будет передан в ваш метод Insert. Код для этого будет выглядеть очень похоже на то, что вы используете в LeasesDS_Inserting, но вы будете вставлять в свой собственный словарь вместо e.InputParameters.
Как только у вас будет готов словарь, вы можете вызвать Insert для представления примерно так:
view.Insert(dict, delegate { return false; });
Это должно сделать это.
Вам больше не понадобится метод LeasesDS_Inserting, поскольку метод вставки представления выполнит работу по преобразованию предоставленного вами словаря в объект данных, который он собирается передать в ваш метод Insert.
Если вам нужно больше обработать свойства этого объекта данных, вы увидите это в словаре InputParameters, переданном в LeasesDS_Inserting.