private void btnModificar_Click(object sender, RoutedEventArgs e) { if (dgArtesanias.SelectedItem != null) { Artesania a = (Artesania)dgArtesanias.SelectedItem; a.Descripcion = txtDescripcion.Text; a.Material = (Material)cboMaterialPrincipal.SelectedItem; if (rdbNacional.IsChecked == true) { a.Procedencia = rdbNacional.Content.ToString(); } else { a.Procedencia = rdbImportado.Content.ToString(); } a.PathImagen = imgPhoto.Source.ToString(); //Le ponemos una banderita de que se modicaron datos en la entidad.. datos.Entry(a).State = System.Data.Entity.EntityState.Modified; datos.SaveChanges(); //Eliminamos las categorias que tenga asociada actualmente..y todas las que seleccione (van a asociarse nuevamente) var arteCategorias = a.Artesania_Categoria; if (arteCategorias.Count > 0) { datos.Artesania_Categoria.RemoveRange(arteCategorias); datos.SaveChanges(); } //Finalmente, actualizamos las categorias asociadas foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { //Obtenemos la categoria de acuerdo al id, guardado en el tag: if (chk.IsChecked == true) { int idCategoria = int.Parse(chk.Tag.ToString()); Categoria c = datos.Categoria.Find(idCategoria); Artesania_Categoria ac = new Artesania_Categoria(); ac.Artesania = a; ac.Categoria = c; datos.Artesania_Categoria.Add(ac); datos.SaveChanges(); } } CargarDatosGrilla(); } else { MessageBox.Show("Debe seleccionar una Artesania de la grilla para modificar!"); } }
private void btnGuardar_Click(object sender, RoutedEventArgs e) { //Validaciones de ingreso de datos! //Try Catch! //Crear un objeto de Tipo Artesania, agregarlo al modelo... Y el insert into..? Artesania arte = new Artesania(); //arte.Id_Artesania = ? Es autogenerado! ish! arte.Descripcion = txtDescripcion.Text; arte.Material = (Material)cboMaterialPrincipal.SelectedItem; if (rdbNacional.IsChecked == true) { arte.Procedencia = rdbNacional.Content.ToString(); } else { arte.Procedencia = rdbImportado.Content.ToString(); } arte.PathImagen = imgPhoto.Source.ToString(); //Guardamos la artesania datos.Artesania.Add(arte); datos.SaveChanges(); //Como Artesania/Categoria se guarda en una tabla aparte (correlación), entonces a continuación hacemos eso... //Que categorias checkeó? foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { //Obtenemos la categoria de acuerdo al id, guardado en el tag: if (chk.IsChecked == true) { int idCategoria = int.Parse(chk.Tag.ToString()); Categoria c = datos.Categoria.Find(idCategoria); Artesania_Categoria ac = new Artesania_Categoria(); ac.Artesania = arte; ac.Categoria = c; datos.Artesania_Categoria.Add(ac); datos.SaveChanges(); } } CargarDatosGrilla(); }