private void WdgMgrReZOrderSelectionHandler(object parameter)
        {
            WDMgrZorderDragChangeInfo info = (WDMgrZorderDragChangeInfo)parameter;
            Guid pageID = info.PageID;
            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null && page.ActivePage.Guid == pageID)
            {
                page.WdgMgrReZOrderSelection(info.zIndex, info.widgetID);
            }
        }
        public void ProcessDrapDropChangeZorder(WidgetListItem DragItem, WidgetListItem TargetItem)
        {
            WDMgrZorderDragChangeInfo info = new WDMgrZorderDragChangeInfo();

            info.PageID   = DragItem.ParentPage.Guid;
            info.widgetID = DragItem.WidgetID;

            if (TargetItem == null)
            {
                TargetItem = _rootItem;
            }

            if (TargetItem.OrderedChildren != null && TargetItem.OrderedChildren.Count > 0)
            {
                if (DragItem.ParentID.Equals(TargetItem.WidgetID))
                {
                    info.zIndex = TargetItem.OrderedChildren[0].zOrder + 1;
                }
                else if (DragItem.ParentID.Equals(TargetItem.ParentID))
                {
                    info.zIndex = GetMinZorder(TargetItem);
                }
                else
                {
                    NLogger.Error("ProcessDrapDropChangeZorder->target item error!");
                }
            }
            else
            {
                info.zIndex = TargetItem.zOrder;
            }

            System.Diagnostics.Debug.WriteLine(TargetItem.WidgetTypeName + "->" + info.zIndex.ToString());

            _ListEventAggregator.GetEvent <WdgMgrOrderwidgetEvent>().Publish(info);
        }