Exemplo n.º 1
0
        /// <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
            }
        }
Exemplo n.º 2
0
        /// <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
                }
            }
        }