Как сделать элементы переупорядочиваемыми *с помощью касания* в проекте UWP 10.0 XAML/C#

Согласно примеру на на этой странице следующий код позволит изменить порядок элементов в ListView. На самом деле это так, но только с помощью мыши. Если я помещу окно на свой сенсорный экран и коснусь элементов, он покажет анимацию «неудачная прокрутка» (перемещение по вертикали, а затем всплывающее назад), и элементы не будут переупорядочиваться. Какие-либо предложения?

<ListView CanReorderItems="True" AllowDrop="True">
    <ListView.ItemTemplate>
        <DataTemplate><TextBlock Text="{Binding}"/></DataTemplate>
    </ListView.ItemTemplate>
    <x:String>One</x:String>
    <x:String>Two</x:String>
    <x:String>Three</x:String>
    <x:String>Four</x:String>
</ListView>

Все это находится в проекте UWP 10.0 (фреймворки: uap10.0), если быть точным.

Я надеюсь, что это сработает без необходимости писать код перетаскивания.


person Eric    schedule 14.08.2015    source источник


Ответы (1)


Потратил час на это, прежде чем двигаться дальше, и в итоге оказался здесь через три часа, пытаясь решить еще одна проблема.

Нажмите и удерживайте, затем перетащите, чтобы изменить порядок

Скотт использует гамбургеры для захвата... хороший выбор. Совет заключается в том, что что-то статичное должно быть в списке, чтобы его можно было переупорядочить, чтобы иметь возможность «захватить» элемент, иначе переупорядочивание может не работать, потому что жесты обрабатываются для выполнения чего-то другого. Мой список был коротким, но в нем были флажки, которые можно было поставить/снять, и вы не можете изменить порядок после этого. На изображении список длиннее экрана. Как только он начнет прокручиваться, вы больше не сможете изменить порядок.

Кажется, я тоже поторопился с пальцами. Кажется, я не смог изменить порядок, даже если никакие флажки не изменили состояние или с точным кодом из вопроса, содержащим только строки.

Вполне доволен количеством необходимого кода;)

Украдено из блога Скотта Хансельманса

person Eric    schedule 15.08.2015