/// <summary>
        /// Muestra la ventana detalle en modo edit
        /// </summary>
        /// <history>
        /// [emoguel] 28/04/2016 Created
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            UnderPaymentMotive          underPaymentMotive = (UnderPaymentMotive)dgrUnderPayMentMotive.SelectedItem;
            frmUnderPaymentMotiveDetail frmUndPayMotDetail = new frmUnderPaymentMotiveDetail();

            frmUndPayMotDetail.Owner    = this;
            frmUndPayMotDetail.enumMode = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly;
            frmUndPayMotDetail.oldUnderPaymentMOtive = underPaymentMotive;
            if (frmUndPayMotDetail.ShowDialog() == true)
            {
                int nIndex = 0;
                List <UnderPaymentMotive> lstUnderPaymentMotive = (List <UnderPaymentMotive>)dgrUnderPayMentMotive.ItemsSource;
                if (ValidateFilter(frmUndPayMotDetail.underPaymentMotive))                                  //Verificamos que cumpla con los filtros
                {
                    ObjectHelper.CopyProperties(underPaymentMotive, frmUndPayMotDetail.underPaymentMotive); //Actualizamos los datos
                    lstUnderPaymentMotive.Sort((x, y) => string.Compare(x.upN, y.upN));                     //Reordenamos la lista
                    nIndex = lstUnderPaymentMotive.IndexOf(underPaymentMotive);                             //Buscamos la posición del registro
                }
                else
                {
                    lstUnderPaymentMotive.Remove(underPaymentMotive);                           //Quitamos el registro de la lista
                }
                dgrUnderPayMentMotive.Items.Refresh();                                          //Actualizamos la vista
                GridHelper.SelectRow(dgrUnderPayMentMotive, nIndex);                            //Seleccionamos el registro
                StatusBarReg.Content = lstUnderPaymentMotive.Count + " Under Payment Motives."; //Actualizamos el contador
            }
        }
        /// <summary>
        /// Abre la ventana detalle en modo add
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 28/04/2016
        /// </history>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            frmUnderPaymentMotiveDetail frmUndPayMotDetail = new frmUnderPaymentMotiveDetail();

            frmUndPayMotDetail.Owner    = this;
            frmUndPayMotDetail.enumMode = EnumMode.Add;
            if (frmUndPayMotDetail.ShowDialog() == true)
            {
                UnderPaymentMotive underPaymentMotive = frmUndPayMotDetail.underPaymentMotive;
                if (ValidateFilter(underPaymentMotive))//verificamos que cumpla con los filtros actuales
                {
                    List <UnderPaymentMotive> lstUnderPaymentMotives = (List <UnderPaymentMotive>)dgrUnderPayMentMotive.ItemsSource;
                    lstUnderPaymentMotives.Add(underPaymentMotive);                                  //Agregamos el registro
                    lstUnderPaymentMotives.Sort((x, y) => string.Compare(x.upN, y.upN));             //Reordenamos la lista
                    int nIndex = lstUnderPaymentMotives.IndexOf(underPaymentMotive);                 //Obtenemos la posición del registro
                    dgrUnderPayMentMotive.Items.Refresh();                                           //Actualizamos la vista
                    GridHelper.SelectRow(dgrUnderPayMentMotive, nIndex);                             //Seleccionamos el registro
                    StatusBarReg.Content = lstUnderPaymentMotives.Count + " Under Payment Motives."; //Actualizamos el contador
                }
            }
        }