がりらぼ

WindowsRuntimeの応援ブログ

ドラッグ&ドロップで並び替え可能なListViewを作る

ListViewのAllowDrop、CanDragItem、CanRelorderItemの3つのプロパティをすべてtrueにすることで、イベントハンドラを書かずともドラッグ&ドロップで並び替え可能なListViewを作成することが可能です。

<ListView Name="listView" CanDragItems="True" CanReorderItems="True" AllowDrop="True" ItemsSource="{Binding Obj}" Margin="307,245,272,188" />

適当にitemを追加する

public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            this.DataContext = new Item();
        }
    }

    public class Item
    {
        public ObservableCollection<string> Obj { get; set; }

        public Item()
        {
            Obj = new ObservableCollection<string>()
            {
                "item1","item2","item3"
            };
        }
    }

これでitemをドラッグ&ドロップでアイテムが並び替えられます。
f:id:garicchi:20140130130406p:plain

DropやDragLeaveなどのイベントハンドラを使わなくてもxamlだけでドラッグ&ドロップができるなんてスゴイ