最近刚接触Silverlight,感觉学习Silverlight还是要先从控件学起。Silverlight Toolkit 是一个非常不错的控件集,里面具有很多很实用的东西,所以先学习些这些东西还是很有好处的。
自己原来通过写鼠标的各种事件,实现鼠标拖动组件的功能,今天学了学Sliverlight Toolkit 工具,发现有DragDropTarge很好用的东西。废话不多说,直接上代码。
首先放上两个ListBox,利用ListBoxDragDropTarget实现拖拽效果。
这里需要注意的是,如果想要实现一个ListBox内部的重排序功能,就必须要定义一下ListBox.ItemPanel,否则将无法实现单独ListBox的reorder功能。
接下来写后台代码,这里预先定义一个Person类,作为数据源。在Person类里,定义name、age、headImage属性,别忘了ListBox可是内容控件哦。这里有一点需要大家注意,我们平常绑定数据,用List<>就可以,但是为了实现预期的效果,就必须要使用ObservableCollection<>类型,为什么?因为ObservableCollection表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。
就这样,利用Silverlight Toolkit很简单就可以实现很强大的功能。
效果截图: