private void tree1_DragOver(object sender, DragEventArgs e) { try { TreeNodeBase selectedItem = ((FrameworkElement)e.OriginalSource).DataContext as TreeNodeBase; if (!(selectedItem is DBModuleNode) && selectedItem is 数据模块Node) { //检查数据库是否相同 if (((数据模块Node)selectedItem).Module == null || ((DBModuleNode)m_drogItem).Module.DatabaseID != ((数据模块Node)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } e.Effects = DragDropEffects.Move; } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == true)) { //检查数据库是否相同 if (((DBModuleNode)m_drogItem).Module.DatabaseID != ((DBModuleNode)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } //判断拖动者是否是目标者的父节点 bool canDrog = selectedItem != m_drogItem; if (canDrog) { for (DBModuleNode parent = selectedItem.Parent as DBModuleNode; parent != null; parent = parent.Parent as DBModuleNode) { if (parent == selectedItem) { canDrog = false; break; } } } if (canDrog) { e.Effects = DragDropEffects.Move; selectedItem.IsExpanded = true; } else { e.Effects = DragDropEffects.None; } } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == false)) { e.Effects = DragDropEffects.None; } else { e.Effects = DragDropEffects.None; } e.Handled = true; } catch { } }
private void MenuItem_重命名模块_Click_1(object sender, RoutedEventArgs e) { DBModuleNode modulenode = (DBModuleNode)tree1.SelectedItem; modulenode.Rename(); }
private void tree1_Drop(object sender, DragEventArgs e) { try { int parentid = -1; TreeNodeBase selectedItem = ((FrameworkElement)e.OriginalSource).DataContext as TreeNodeBase; if (!(selectedItem is DBModuleNode) && selectedItem is 数据模块Node) { //检查数据库是否相同 if (((数据模块Node)selectedItem).Module == null || ((DBModuleNode)m_drogItem).Module.DatabaseID != ((数据模块Node)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } parentid = 0; } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == true)) { //检查数据库是否相同 if (((DBModuleNode)m_drogItem).Module.DatabaseID != ((DBModuleNode)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } //判断拖动者是否是目标者的父节点 bool canDrog = selectedItem != m_drogItem; if (canDrog) { for (DBModuleNode parent = selectedItem.Parent as DBModuleNode; parent != null; parent = parent.Parent as DBModuleNode) { if (parent == selectedItem) { canDrog = false; break; } } } if (canDrog) { parentid = ((DBModuleNode)selectedItem).Module.id.Value; } } if (parentid >= 0 && (((DBModuleNode)m_drogItem).Module.parentID != parentid)) { Helper.Client.InvokeSync <string>("ChangeModuleParent", ((DBModuleNode)m_drogItem).Module.id.Value, parentid); ((DBModuleNode)m_drogItem).Module.parentID = parentid; m_drogItem.Parent.Children.Remove(m_drogItem); selectedItem.Children.Add(m_drogItem); m_drogItem.Parent = selectedItem; } } catch (Exception ex) { MessageBox.Show(this, ex.Message); } finally { e.Effects = DragDropEffects.None; e.Handled = true; m_drogItem = null; } }
private void MenuItem_删除目录_Click_1(object sender, RoutedEventArgs e) { DBModuleNode modulenode = (DBModuleNode)tree1.SelectedItem; modulenode.Delete(); }