概述

本文描述WPF的拖放功能(Drag and Drop)。

拖放功能涉及到两个功能,一个就是拖,一个是放。拖放可以发生在两个控件之间,也可以在一个控件自己内部拖放。假设界面上有两个控件,一个TreeView,一个ListView,那么可能发生的拖动有以下几种情况:

1、TreeView -> ListView

2、ListView -> TreeView 

3、TreeView -> TreeView 

4、ListView -> ListView

对于拖的控件需要在鼠标移动事件中检测左键按下并启动拖动操作;对于放的控件需要处理Drop等事件来接收数据。如果是在控件内部拖动,则以上两个动作都要处理。

为简便起见,本文就以ListView拖动到TreeView为例进行讲解。 

 

在拖与放的控件之间一定会有数据传递,我们可以设计一个类型来进行数据传输,由于ListView本身就是绑定到一个对象列表的,我就把选中的对象字节拿来传递了,没有额外定义类型。

    public class ListViewAdvNodeItem
    {
        public string Title {get;set;}

    }
08-26 17:29