protected override void UpdateData(int index) { try { if (index < 0) { //persist delete operation if (_provider.Items.IsDeletedCount > 0) { _provider.Update(this.CompId); } } else { //persist add/edit operations if (_provider[index].IsDirty) { //validate the item _provider[index].Validate(); //if valid, update the database if (_provider[index].IsValid) { _provider.Update(this.CompId); } } //clear error _provider[index].SetErrorText(null); } } catch (ProviderException pex) { if (index > -1) { _provider[index].SetErrorText(pex.Message); } ClientContext.HandleError(pex, this); } catch (Exception ex) { ClientContext.HandleError(ex, this); } finally { if (_provider.Items.IsDeletedCount > 0) { _provider.Items.AddRange(_provider.Items.DeletedItems); _provider.Items.DeletedItems.Clear(); this.BindingSource.ResetBindings(false); } EntityProvider.InvalidateLookupObject("PartnerItemXref"); } }