コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: skyclub66/EntityDB
        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
            {
            }
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: skyclub66/EntityDB
        private void MenuItem_重命名模块_Click_1(object sender, RoutedEventArgs e)
        {
            DBModuleNode modulenode = (DBModuleNode)tree1.SelectedItem;

            modulenode.Rename();
        }
コード例 #3
0
ファイル: MainWindow.xaml.cs プロジェクト: skyclub66/EntityDB
        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;
            }
        }
コード例 #4
0
ファイル: MainWindow.xaml.cs プロジェクト: skyclub66/EntityDB
        private void MenuItem_删除目录_Click_1(object sender, RoutedEventArgs e)
        {
            DBModuleNode modulenode = (DBModuleNode)tree1.SelectedItem;

            modulenode.Delete();
        }