Example #1
0
        public void SwapWith(TagWrap second, DragProcessor.SwapMode mode)
        {
            if (second == null)
            {
                second = new TagWrap();
            }
            if (object.ReferenceEquals(this, second))
            {
                return;
            }
            switch (mode)
            {
            case DragProcessor.SwapMode.Copy:
                Tag = second.Tag.GetClone(this); break;

            case DragProcessor.SwapMode.Swap:
                var tmpTag = second.Tag;
                second.Tag = Tag;
                Tag        = tmpTag; break;

            default:
                Tag        = second.Tag;
                second.Tag = new Tag(); break;
            }
        }
Example #2
0
            public DragData(object sender, DragEventArgs e)
            {
                from  = e.Data.GetData(typeof(DragElement)) as DragElement;
                _mode = GetDragMode(e);
                var senderElement = ((FrameworkElement)sender).DataContext as IDragElement;
                var conteiner     = ((FrameworkElement)e.OriginalSource).DataContext as IDragElement;

                if (conteiner is IContainer && ((IContainer)conteiner).AcceptType(senderElement.GetType()))
                {
                    to = new DragElement(senderElement, conteiner);
                }
                else
                {
                    to = new DragElement(conteiner, senderElement);
                }
            }