/// <summary> /// Muestra la ventana detalle /// </summary> /// <history> /// [emoguel] 11/04/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { Post post = (Post)dgrPosts.SelectedItem; frmPostDetail frmPostDetail = new frmPostDetail(); frmPostDetail.Owner = this; frmPostDetail.oldPost = post; frmPostDetail.enumMode = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly; if (frmPostDetail.ShowDialog() == true) { int nIndex = 0; List <Post> lstPosts = (List <Post>)dgrPosts.ItemsSource; if (ValidateFilter(frmPostDetail.post)) //Verificamos si cumple con los filtros actuales { ObjectHelper.CopyProperties(post, frmPostDetail.post); //Actualizamos los datos del registro lstPosts.Sort((x, y) => string.Compare(x.poN, y.poN)); //Ordenamos la lista nIndex = lstPosts.IndexOf(post); //buscamos la posición del registro nuevo } else { lstPosts.Remove(post);//Quitamos el registro de la lista } dgrPosts.Items.Refresh(); GridHelper.SelectRow(dgrPosts, nIndex); StatusBarReg.Content = lstPosts.Count + " Posts."; } }
/// <summary> /// Abre la ventana en modo add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 11/04/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmPostDetail frmPostDetail = new frmPostDetail(); frmPostDetail.Owner = this; frmPostDetail.enumMode = EnumMode.Add; if (frmPostDetail.ShowDialog() == true) { Post post = frmPostDetail.post; if (ValidateFilter(post))//verificamos si cumple con los filtros actuales { List <Post> lstFiltros = (List <Post>)dgrPosts.ItemsSource; lstFiltros.Add(post); //Agreamos un registro nuevo lstFiltros.Sort((x, y) => string.Compare(x.poN, y.poN)); //Ordenamos la lista int nIndex = lstFiltros.IndexOf(post); //Obtenemos la posición del registro dgrPosts.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrPosts, nIndex); //Seleccionamos el registro nuevo StatusBarReg.Content = lstFiltros.Count + " Post."; //Actualizamos el contador } } }