public void addNode(string NodeParent, string headerSubItem, TagMultiple TagSubItem) { try { foreach (TreeViewItem item in Menu.Items) { var MultiTag = (TagMultiple)item.Tag; TreeViewItem Subitem = new TreeViewItem(); //lo agregar como tipo tres if (item.Items.Count > 0) { foreach (TreeViewItem itemSub in item.Items) { var MultiTagSub = (TagMultiple)itemSub.Tag; if (MultiTagSub.Id_Row == NodeParent.Trim()) { Subitem.Name = "I" + TagSubItem.Id_Row; Subitem.Header = headerSubItem; Subitem.Tag = TagSubItem; Subitem.Selected += new RoutedEventHandler(TreeViewItem_Selected); //Subitem.MouseLeftButtonDown += TreeViewItem_Selected; itemSub.Items.Add(Subitem); } } } //lo agregar como tipo 2 if (MultiTag.Id_Row == NodeParent.Trim()) { Subitem.Name = "I" + TagSubItem.Id_Row; Subitem.Header = headerSubItem; Subitem.Tag = TagSubItem; Subitem.Selected += new RoutedEventHandler(TreeViewItem_Selected); //Subitem.MouseLeftButtonDown += TreeViewItem_Selected; item.Items.Add(Subitem); } } } catch (Exception w) { MessageBox.Show("*_*" + w); } }
private async void LoadItems() { try { Menu.Items.Clear(); CancellationTokenSource source = new CancellationTokenSource(); CancellationToken token = source.Token; sfBusyIndicator.IsBusy = true; var slowTask = Task <DataTable> .Factory.StartNew(() => SlowDude(source.Token), source.Token); await slowTask; if (((DataTable)slowTask.Result).Rows.Count > 0) { foreach (DataRow row in ((DataTable)slowTask.Result).Rows) { TreeViewItem item = new TreeViewItem(); item.Cursor = Cursors.Hand; item.FontSize = 13; if (row["type_item"].ToString().Trim() == "1") { item.Tag = new TagMultiple() { Id_Row = row["idrow"].ToString().Trim(), NamePnt = row["name_item"].ToString().Trim(), TipoPnt = row["type_item"].ToString().Trim(), IsRep = Convert.ToBoolean(row["id_parm"]), urlRep = row["reporte"].ToString().Trim(), Id_screen = Convert.ToInt32(row["id_Screen"]), typePnt = row["typePnt"].ToString().Trim(), idserver = Convert.ToInt32(row["idserver"]), serverIp = row["ServerIP"].ToString().Trim(), userServer = row["UserServer"].ToString().Trim(), userServerPass = row["UserServerPassword"].ToString().Trim(), }; item.Header = row["name_item"].ToString().Trim(); item.Selected += new RoutedEventHandler(TreeViewItem_Selected); //item.MouseLeftButtonDown += TreeViewItem_Selected; Menu.Items.Add(item); } if (row["type_item"].ToString().Trim() == "2") { string parent = row["cod_itemP"].ToString().Trim(); TagMultiple tag = new TagMultiple() { Id_Row = row["idrow"].ToString().Trim(), NamePnt = row["name_item"].ToString().Trim(), TipoPnt = row["type_item"].ToString().Trim(), IsRep = Convert.ToBoolean(row["id_parm"]), urlRep = row["reporte"].ToString().Trim(), Id_screen = Convert.ToInt32(row["id_Screen"]), typePnt = row["typePnt"].ToString().Trim(), idserver = Convert.ToInt32(row["idserver"]), serverIp = row["ServerIP"].ToString().Trim(), userServer = row["UserServer"].ToString().Trim(), userServerPass = row["UserServerPassword"].ToString().Trim(), }; string header = row["name_item"].ToString().Trim(); addNode(parent, header, tag); } if (row["type_item"].ToString().Trim() == "3") { string parent = row["cod_itemP"].ToString().Trim(); TagMultiple tag = new TagMultiple() { Id_Row = row["idrow"].ToString().Trim(), NamePnt = row["name_item"].ToString().Trim(), TipoPnt = row["type_item"].ToString().Trim(), IsRep = Convert.ToBoolean(row["id_parm"]), urlRep = row["reporte"].ToString().Trim(), Id_screen = Convert.ToInt32(row["id_Screen"]), typePnt = row["typePnt"].ToString().Trim(), idserver = Convert.ToInt32(row["idserver"]), serverIp = row["ServerIP"].ToString().Trim(), userServer = row["UserServer"].ToString().Trim(), userServerPass = row["UserServerPassword"].ToString().Trim(), }; string header = row["name_item"].ToString().Trim(); addNode(parent, header, tag); } } //item.MouseLeftButtonUp += click; } sfBusyIndicator.IsBusy = false; } catch (Exception w) { MessageBox.Show("Error-" + w); } }