/// <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 20/05/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { Product product = (Product)dgrProducts.SelectedItem; frmProductDetail frmProductDetail = new frmProductDetail(); frmProductDetail.Owner = this; frmProductDetail.enumMode = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly; frmProductDetail.oldProduct = product; if (frmProductDetail.ShowDialog() == true) { int nIndex = 0; List <Product> lstproducts = (List <Product>)dgrProducts.ItemsSource; if (ValidateFilter(frmProductDetail.product)) //Verificar que cumpla con los filtros actuales { ObjectHelper.CopyProperties(product, frmProductDetail.product); //Actualizar los datos lstproducts.Sort((x, y) => string.Compare(x.prN, y.prN)); //Actualizar la vista nIndex = lstproducts.IndexOf(product); //Buscamos la posición del registro } else { lstproducts.Remove(product); //Quuitar el registro } dgrProducts.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrProducts, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstproducts.Count + " Products"; //Actualizamos el contador } }
/// <summary> /// Abre la ventana detalle en modo add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 20/05/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmProductDetail frmProductDetail = new frmProductDetail(); frmProductDetail.enumMode = EnumMode.Add; frmProductDetail.Owner = this; if (frmProductDetail.ShowDialog() == true) { if (ValidateFilter(frmProductDetail.product)) { List <Product> lstProducts = (List <Product>)dgrProducts.ItemsSource; lstProducts.Add(frmProductDetail.product); //Agregar el registro a la lista lstProducts.Sort((x, y) => string.Compare(x.prN, y.prN)); //Ordenamos la lista int nIndex = lstProducts.IndexOf(frmProductDetail.product); //Obtenemos la posición del registro dgrProducts.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrProducts, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstProducts.Count + " Products"; //Actualizamos el contador } } }