/// <summary>
        /// 判断是否可执行元素替换
        /// </summary>
        /// <param name="beforeConferenceTreeItem"></param>
        /// <param name="nowConferenceTreeItem"></param>
        /// <returns></returns>
        public bool CheckCanInsteadElement(ConferenceTreeItem beforeConferenceTreeItem, ConferenceTreeItem nowConferenceTreeItem)
        {
            bool result = true;

            try
            {
                if (beforeConferenceTreeItem != null && nowConferenceTreeItem != null)
                {
                    //查找拖动目标的子集(不允许父级拖到子级的动作)
                    List <ConferenceTreeItem> beforeItemList = WPFElementManage.FindVisualChildren <ConferenceTreeItem>(beforeConferenceTreeItem).ToList <ConferenceTreeItem>();
                    //不允许父级拖到子级的动作(返回)
                    if (beforeItemList != null && beforeItemList.Contains(nowConferenceTreeItem))
                    {
                        result = false;
                    }
                    //不为父子级关系
                    if (beforeConferenceTreeItem.ACA_Parent == null || beforeConferenceTreeItem.ACA_Parent.Equals(nowConferenceTreeItem))
                    {
                        result = false;
                    }
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 子项拖动完成(鼠标点击弹起事件)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConferenceTreeView_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (this.conferenceTreeItemVisual.Visibility == System.Windows.Visibility.Visible)
                {
                    ConferenceTreeItem currentItem = ConferenceTreeItem.currentConferenceTreeItem;
                    if (currentItem != null)
                    {
                        //鼠标点击释放了,不可再拖动
                        currentItem.isDrag = false;


                        Point         pos    = e.GetPosition(this.borDiscussTheme);
                        HitTestResult result = VisualTreeHelper.HitTest(this.borDiscussTheme, pos);

                        if (result == null)
                        {
                            //显示虚拟拖拽节点
                            ConferenceTreeView.conferenceTreeView.conferenceTreeItemVisual.Visibility = System.Windows.Visibility.Collapsed;

                            return;
                        }
                        else
                        {
                            //显示虚拟拖拽节点
                            ConferenceTreeView.conferenceTreeView.conferenceTreeItemVisual.Visibility = System.Windows.Visibility.Collapsed;
                        }

                        ConferenceTreeItem conferenceTreeItem = WPFElementManage.FindVisualParent <ConferenceTreeItem>(result.VisualHit); // Find your actual visual you want to drag
                        if (conferenceTreeItem == null)
                        {
                            return;
                        }
                        if (conferenceTreeItem == currentItem)
                        {
                            return;
                        }

                        #region old solution

                        //ConferenceTreeItemTransferEntity beforeTransferItem = currentItem.AcademicReviewItemTransferEntity;
                        //ConferenceTreeItemTransferEntity nowTransferItem = conferenceTreeItem.AcademicReviewItemTransferEntity;
                        ////存储选择协议实体和目标协议实体标题
                        //string title1 = beforeTransferItem.Title;
                        //string title2 = nowTransferItem.Title;
                        ////存储选择协议实体和目标协议实体评论
                        //string coment1 = beforeTransferItem.Comment;
                        //string coment2 = nowTransferItem.Comment;
                        ////存储选择协议实体和目标协议实体链接
                        //List<string> list1 = beforeTransferItem.LinkList.ToList<string>();
                        //List<string> list2 = nowTransferItem.LinkList.ToList<string>();



                        //beforeTransferItem.Title = title2;
                        //nowTransferItem.Title = title1;

                        //beforeTransferItem.Comment = coment2;
                        //nowTransferItem.Comment = coment1;

                        //beforeTransferItem.LinkList = list2;
                        //nowTransferItem.LinkList = list1;

                        #endregion

                        if (CheckCanInsteadElement(currentItem, conferenceTreeItem))
                        {
                            //conferenceTreeItem.ContentVisibility = System.Windows.Visibility.Visible;
                            ModelManage.ConferenceTree.InsteadElement(TreeCodeEnterEntity.ConferenceName, currentItem.ACA_Guid, conferenceTreeItem.ACA_Guid, new Action <bool>((successed) =>
                            {
                            }));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }