private void ContextMenuClose(object sender, RoutedEventArgs e) { MenuItemEx menuItem = sender as MenuItemEx; var name = "N" + menuItem.Name.Split('_')[1]; TreeViewExNode item = DataBaseList.FindName(name) as TreeViewExNode; var removeItems = new List <TabItemEx>(); // 关闭关联视图 if (menuItem.ItemType == ItemTypes.Server) { foreach (TabItemEx temp in TabController.Items) { if (temp.DataSource == item.DataSource && temp.ConnectionId == item.ConnectionId) { removeItems.Add(temp); } } } else if (menuItem.ItemType == ItemTypes.DataBase) { foreach (TabItemEx temp in TabController.Items) { if (temp.DataBase == item.DataBase && temp.DataSource == item.DataSource && temp.ConnectionId == item.ConnectionId) { removeItems.Add(temp); } } } foreach (TabItemEx temp in removeItems) { TabController.Items.Remove(temp); } if (item != null) { DockPanel1.UnregisterName(name); item.Items.Clear(); } }
private void TreeItemClick(TreeViewExNode item, ItemTypes itemTypes) { if (!item.IsSelected || item.HasItems) { return; } item.Items.Clear(); var data = new List <string>(); switch (itemTypes) { case ItemTypes.Server: data = Service.GetDataBases(item.ConnectionStr, item.DataType); break; case ItemTypes.DataBase: data = Service.GetTables(item.ConnectionStr, item.DataType, item.DataBase); break; } DockPanel1.RegisterName(item.Name, item); ContextMenu menu = GetOpenItemContextMenu(item.ID, itemTypes); item.ContextMenu = menu; foreach (var dataItem in data) { var id = GuidExtend.NewId(); TreeViewExNode node = new TreeViewExNode(); node.ID = id; node.DataType = item.DataType; node.Name = "N" + id; node.IsExpanded = false; node.Level = item.Level + 1; node.Header = dataItem; node.FontSize = item.FontSize - 2; node.DataSource = item.DataSource; node.ConnectionId = item.ConnectionId; node.ConnectionStr = item.ConnectionStr; switch (itemTypes) { case ItemTypes.Server: node.MouseDoubleClick += DataBaseClick; node.DataBase = dataItem; break; case ItemTypes.DataBase: node.MouseDoubleClick += TableClick; node.DataBase = item.DataBase; node.TableKey = dataItem; break; } item.Items.Add(node); } item.IsExpanded = true; }