/// <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 03/06/2016
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            ShowProgramCategory          showProgramCategory       = (ShowProgramCategory)dgrShowProgramscategories.SelectedItem;
            frmShowProgramCategoryDetail frmShowProgramCategoryDet = new frmShowProgramCategoryDetail();

            frmShowProgramCategoryDet.Owner    = this;
            frmShowProgramCategoryDet.enumMode = EnumMode.Edit;
            frmShowProgramCategoryDet.oldShowProgramCategory = showProgramCategory;
            if (frmShowProgramCategoryDet.ShowDialog() == true)
            {
                int nIndex = 0;
                List <ShowProgramCategory> lstShowProgramcategories = (List <ShowProgramCategory>)dgrShowProgramscategories.ItemsSource;
                if (ValidateFilter(frmShowProgramCategoryDet.showProgramCategory))                                   //Verificamos que cumpla con los filtros
                {
                    ObjectHelper.CopyProperties(showProgramCategory, frmShowProgramCategoryDet.showProgramCategory); //Actualizamos los datos
                    lstShowProgramcategories.Sort((x, y) => string.Compare(x.sgN, y.sgN));                           //Ordenamos la lista
                    nIndex = lstShowProgramcategories.IndexOf(showProgramCategory);                                  //Obtenemos la posición del registro
                }
                else
                {
                    lstShowProgramcategories.Remove(showProgramCategory);                            //Quitamos el registro
                }
                dgrShowProgramscategories.Items.Refresh();                                           //Actualizamos la vista
                GridHelper.SelectRow(dgrShowProgramscategories, nIndex);                             //Seleccionamos el registro
                StatusBarReg.Content = lstShowProgramcategories.Count + " Show Program Categories."; //Actualizamos el contador
            }
        }
        /// <summary>
        /// Abre la ventana detalle en modo add
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 03/06/2016
        /// </history>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            frmShowProgramCategoryDetail frmShowProgramCategoryDet = new frmShowProgramCategoryDetail();

            frmShowProgramCategoryDet.Owner    = this;
            frmShowProgramCategoryDet.enumMode = EnumMode.Add;
            if (frmShowProgramCategoryDet.ShowDialog() == true)
            {
                if (ValidateFilter(frmShowProgramCategoryDet.showProgramCategory))//Verificamos que cumpla con los filtros
                {
                    List <ShowProgramCategory> lstShowProgramCategories = (List <ShowProgramCategory>)dgrShowProgramscategories.ItemsSource;
                    lstShowProgramCategories.Add(frmShowProgramCategoryDet.showProgramCategory);                  //Agregamos el registro a la lista
                    lstShowProgramCategories.Sort((x, y) => string.Compare(x.sgN, y.sgN));                        //Ordenamos la lista
                    int nIndex = lstShowProgramCategories.IndexOf(frmShowProgramCategoryDet.showProgramCategory); //Obtenemos la posición del registro
                    dgrShowProgramscategories.Items.Refresh();                                                    //Actualizamos la vista
                    GridHelper.SelectRow(dgrShowProgramscategories, nIndex);                                      //Seleccionamos el registro
                    StatusBarReg.Content = lstShowProgramCategories.Count + " Show Program Categories.";          //Actualizamos el contador
                }
            }
        }