/// <summary>
        /// Muestra la ventana detalle en modo edit
        /// </summary>
        /// <history>
        /// [emoguel] 26/04/2016 Created
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            SourcePayment          sourcePayment    = (SourcePayment)dgrSourcePayments.SelectedItem;
            frmSourcePaymentDetail frmSourcePayment = new frmSourcePaymentDetail();

            frmSourcePayment.Owner            = this;
            frmSourcePayment.enumMode         = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly;
            frmSourcePayment.oldSourcePayment = sourcePayment;
            if (frmSourcePayment.ShowDialog() == true)
            {
                int nIndex = 0;
                List <SourcePayment> lstSourcePayments = (List <SourcePayment>)dgrSourcePayments.ItemsSource;
                if (ValidateFilter(frmSourcePayment.sourcePayment))                             //Validamos si cumple con los filtros actuales
                {
                    ObjectHelper.CopyProperties(sourcePayment, frmSourcePayment.sourcePayment); //Actualizamos los datos
                    lstSourcePayments.Sort((x, Y) => string.Compare(x.sbN, Y.sbN));             //Ordenamos la lista
                    nIndex = lstSourcePayments.IndexOf(sourcePayment);                          //Obtenemos la posición del registro
                }
                else
                {
                    lstSourcePayments.Remove(sourcePayment);                          //Quitamos el registro
                }
                dgrSourcePayments.Items.Refresh();                                    //Actualizamos la vista del contador
                GridHelper.SelectRow(dgrSourcePayments, nIndex);                      //Seleccionamos el registro
                StatusBarReg.Content = lstSourcePayments.Count + " Source Payments."; //Actualizamos el contador
            }
        }
        /// <summary>
        /// Abre la ventana detalle en modo add
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 26/04/2016
        /// </history>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            frmSourcePaymentDetail frmSourcePaymentDetail = new frmSourcePaymentDetail();

            frmSourcePaymentDetail.Owner    = this;
            frmSourcePaymentDetail.enumMode = EnumMode.Add;
            if (frmSourcePaymentDetail.ShowDialog() == true)
            {
                SourcePayment sourcePayment = frmSourcePaymentDetail.sourcePayment;
                if (ValidateFilter(sourcePayment))//Validamos que cumpla con los filtros actuales
                {
                    List <SourcePayment> lstSourcePayment = (List <SourcePayment>)dgrSourcePayments.ItemsSource;
                    lstSourcePayment.Add(sourcePayment);                                 //Agregamos el registro a la lista
                    lstSourcePayment.Sort((x, y) => string.Compare(x.sbN, y.sbN));       //Ordenamos la lista
                    int nInde = lstSourcePayment.IndexOf(sourcePayment);                 //Obtenemos la posición del registro
                    dgrSourcePayments.Items.Refresh();                                   //Actualizamos la vista
                    GridHelper.SelectRow(dgrSourcePayments, nInde);                      //Seleccionamos el registro
                    StatusBarReg.Content = lstSourcePayment.Count + " Source Payments."; //Actualizamos el contador
                }
            }
        }