void AddExecute(object param)
        {
            ContractRate newRate = new ContractRate();

            newRate.CONTRACT_ID = CurrentContract.CONTRACT_ID;
            ContractRates.Add(newRate);
            newRate.Modified     = true;
            SelectedContractRate = newRate;
        }
        void DeleteExecute(object param)
        {
            int currentIndex = SelectedIndexOfContractRate;

            RemoveWeakEventListener(SelectedContractRate, ContractRateListener);
            this.ContractRateTarget.Remove(SelectedContractRate);
            ContractRates.Remove(SelectedContractRate);

            SelectedIndexOfContractRate = currentIndex - 1;
        }
        public void ClearOutPendingAdds()
        {
            foreach (ContractRate contractRate in this.ContractRates)
            {
                if (contractRate.CONTRACT_RATE_ID == 0)
                {
                    ContractRates.Remove(contractRate);
                    break;
                }
            }

            foreach (ContractRateAlt contractRateAlt in AltContractRates)
            {
                if (contractRateAlt.RATE_NBR == 0)
                {
                    AltContractRates.Remove(contractRateAlt);
                    break;
                }
            }
        }