示例效果 前端
<Window
x:Class="WPF_实现拖动排序_ListView_做示例_.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WPF_实现拖动排序_ListView_做示例_"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView Grid.Column="1" ItemsSource="{Binding MyProperty, FallbackValue=123456789}" />
<Grid Grid.Column="0" Background="WhiteSmoke" />
</Grid>
</Window>
后端:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this; MyProperty = new ObservableCollection<string>()
{ "s",
"s1",
"s2" };
}
private ObservableCollection<string> myVar;
public ObservableCollection<string> MyProperty
{
get { return myVar; }
set { myVar = value; }
}
}
绑定最终效果
当前这个排序顺序我们是无法用鼠标拖动来实现改变它的排列顺序,接下来就将一步步实现此效果。
第一步 安装gong-wpf-dragdrop扩展包
第二步 引用命名空间 xmlns:dd="urn:gong-wpf-dragdrop"
第三步 修改ListView
<ListView
Grid.Column="1"
dd:DragDrop.DropHandler="{Binding}"
dd:DragDrop.DropTargetAdornerBrush="{DynamicResource PrimaryThemeColor}"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
dd:DragDrop.UseDefaultDragAdorner="False"
ItemsSource="{Binding MyProperty, FallbackValue=123456789}" />
鼠标拖动效果实现