void CalibrationTabCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Remove)
            {
                try
                {
                    foreach (object item in e.OldItems)
                    {
                        CalibrationTabUIObject iTabObject = item as CalibrationTabUIObject;

                        // use the data access layer to delete the wrapped data object
                        dataAccessLayer.DeleteCalibrationTab(iTabObject.GetDataObject());
                    }
                }
                catch (Exception ex)
                {
                    App.Log.LogException(ex);

                    if (PersistenceError != null)
                    {
                        PersistenceError(this, ex);
                    }
                }
            }
        }
        void CalibrationTabItemEndEdit(IEditableObject sender)
        {
            CalibrationTabUIObject iTabObject = sender as CalibrationTabUIObject;

            try
            {
                if (iTabObject.TankId == 0)
                {
                    iTabObject.TankId = currTankId;
                }
                // use the data access layer to update the wrapped data object
                dataAccessLayer.UpdateCalibrationTab(iTabObject.GetDataObject());
            }
            catch (Exception ex)
            {
                App.Log.LogException(ex);

                if (PersistenceError != null)
                {
                    PersistenceError(this, ex);
                }
            }
        }