timheuer / callisto

A control toolkit for Windows 8 XAML applications. Contains some UI controls to make it easier to create Windows UI style apps for the Windows Store in accordance with Windows UI guidelines.
http://timheuer.com/blog/archive/2012/05/31/introducing-callisto-a-xaml-toolkit-for-metro-apps.aspx
Other
338 stars 108 forks source link

Reordering ListView items in Flyout not working in touch mode - Callisto 1.2.7.0 #183

Closed iTrout closed 11 years ago

iTrout commented 11 years ago

I have a Flyout control with a simple ListView that I need to allow the user to reorder by dragging the individual items. It works as designed in the simulator in Mouse Mode, but in Touch Mode when I try to drag the item up or down it seems like the entire list is trying to move. I've replicated the issue on a Surface and Surface Pro.

Here the snippet of code I'm using to populate the ListView:

            flights = dBFunctions.listFlights(eventObj.eID, eventObj.teamSize);

            flightOrderLV.Width = 200;
            flightOrderLV.CanDragItems = true;
            flightOrderLV.CanReorderItems = true;
            flightOrderLV.AllowDrop = true;
            flightOrderLV.ItemTemplate = (DataTemplate)App.Current.Resources["FlightOrderTemplate"];

            cvsFlights = new System.Collections.ObjectModel.ObservableCollection<dBFunctions.FlightObj>();
            cvs.Source = cvsFlights;
            flightOrderLV.SetBinding(ListView.ItemsSourceProperty, new Binding() { Source = cvs.View });
timheuer commented 11 years ago

I'll take a look, but have to admit that I think this is an edge case. Flyouts are meant to be quick usage, and it appears you are putting several input concepts in this Flyout. Drag/Drop uses a lot of touch interactions in the WinRT engine and I wouldn't expect it tow work terribly well in this implementation of Flyout.