private void ponerTablaEnTreeView(Tabla _t) { TreeViewItem twItem = new TreeViewItem(); twItem.Header = _t.NombreTabla; twItem.Tag = _t; NodoTablas.Items.Add(twItem); NodoTablas.ExpandSubtree(); }
void TWTablas_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { TreeViewItem twitem = TWTablas.SelectedItem as TreeViewItem; if (twitem.Tag != null) { tablaEditada = twitem.Tag as Tabla; txtNombreTabla.Text = tablaEditada.NombreTabla; dgridColumnas.ItemsSource = tablaEditada.Columnas; } }
void CargarDesdeXML(object sender, RoutedEventArgs e) { OpenFileDialog dialogo = new OpenFileDialog(); dialogo.ShowDialog(); if (String.IsNullOrEmpty(dialogo.FileName) == false) { string ruta = dialogo.FileName.ToString(); string DirectorioActual = System.Windows.Forms.Application.StartupPath.ToString(); Tabla t = null; ColumaTabla col = null; //eliminamos las tablas existentes NodoTablas.Items.Clear(); //cargamos el archivo xml Console.WriteLine("Cargando archivo XML"); XmlDocument xDoc = new XmlDocument(); xDoc.Load(Path.Combine(DirectorioActual, ruta)); XmlNodeList nodoTablas = xDoc.GetElementsByTagName("Tablas"); foreach (XmlElement ntabla in nodoTablas[0].ChildNodes) { t = new Tabla(ntabla.Name.ToString()); Console.WriteLine("Nombre tabla: " + ntabla.Name.ToString()); //navegar por las columnas de la tabla foreach (XmlElement nColumna in ntabla.ChildNodes) { Console.WriteLine("\tColumna: " + nColumna.Name.ToString()); col = new ColumaTabla(nColumna.Name, nColumna.Attributes["tipo"].Value.ToString()); if (nColumna.Attributes.Count > 1) { col.isKey = true; } t.Columnas.Add(col); } //agregar a la lista ponerTablaEnTreeView(t); } xDoc = null; GC.Collect(); Console.WriteLine("XML cargado"); } }