/// <summary>
        /// Abre la ventana detalle en modo "detalle" o "ediciĆ³n" dependiendo de sus permisos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 04/06/2016
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            UnavailableMotive          unavailableMotive       = (UnavailableMotive)dgrUnavailableMotives.SelectedItem;
            frmUnavailableMotiveDetail frmUnavailableMotDetail = new frmUnavailableMotiveDetail();

            frmUnavailableMotDetail.Owner                = this;
            frmUnavailableMotDetail.enumMode             = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly;
            frmUnavailableMotDetail.oldUnavailableMotive = unavailableMotive;
            if (frmUnavailableMotDetail.ShowDialog() == true)
            {
                int nIndex = 0;
                List <UnavailableMotive> lstUnavailableMotives = (List <UnavailableMotive>)dgrUnavailableMotives.ItemsSource;
                if (ValidateFilter(frmUnavailableMotDetail.unavailableMotive))                                 //Verificamos que cumpla con ls filtros
                {
                    ObjectHelper.CopyProperties(unavailableMotive, frmUnavailableMotDetail.unavailableMotive); //Actualizamos los datos
                    lstUnavailableMotives.Sort((x, y) => string.Compare(x.umN, y.umN));                        //Ordenamos la lista
                    nIndex = lstUnavailableMotives.IndexOf(unavailableMotive);                                 //Buscamos el contador
                }
                else
                {
                    lstUnavailableMotives.Remove(unavailableMotive);
                }
                dgrUnavailableMotives.Items.Refresh();                                       ///Actualizamos la vista
                GridHelper.SelectRow(dgrUnavailableMotives, nIndex);                         //Seleccionamos el registro
                StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives"; //Actualizamos el contador
            }
        }
        /// <summary>
        /// Abre la venta detalle en modo add
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 04/06/2016
        /// </history>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            frmUnavailableMotiveDetail frmUnavailableMotiveDetail = new frmUnavailableMotiveDetail();

            frmUnavailableMotiveDetail.Owner    = this;
            frmUnavailableMotiveDetail.enumMode = EnumMode.Add;
            if (frmUnavailableMotiveDetail.ShowDialog() == true)
            {
                if (ValidateFilter(frmUnavailableMotiveDetail.unavailableMotive))//verificamos que cumpla con los filtros
                {
                    List <UnavailableMotive> lstUnavailableMotives = (List <UnavailableMotive>)dgrUnavailableMotives.ItemsSource;
                    lstUnavailableMotives.Add(frmUnavailableMotiveDetail.unavailableMotive);                  //Agregamos el registro
                    lstUnavailableMotives.Sort((x, y) => string.Compare(x.umN, y.umN));                       //Ordenamos la lista
                    int nIndex = lstUnavailableMotives.IndexOf(frmUnavailableMotiveDetail.unavailableMotive); //Obtenemos la posicion del registro
                    dgrUnavailableMotives.Items.Refresh();                                                    //Actualizamos la vista
                    GridHelper.SelectRow(dgrUnavailableMotives, nIndex);                                      //Seleccionamos el registro
                    StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives.";             //Actualizamos el contador
                }
            }
        }