У меня есть ListView и я устанавливаю элементы с помощью listView.ItemsSource = list;
На каждый элемент в XML у меня есть GestureRecognizer - PanGestureRecognizer и PanUpdated = "PanUpdateFunction".
Что ж, в этой функции я получаю параметр item by sender и делаю некоторые вычисления для инициализации нужного мне X.
Frame frameThis = (Frame)sender;
var calcXScale = -((frameThis.Width / 7) * 5);
var scalePixels = -20;
switch (e.StatusType)
{
case GestureStatus.Running:
if (e.TotalX < scalePixels)
{
await frameThis.TranslateTo(calcXScale, 0, 175, Easing.Linear);
break;
}
if (e.TotalX > -(scalePixels))
{
await frameThis.TranslateTo(0, 0, 175, Easing.Linear);
break;
}
break;
}
}
Когда я сдвигаю элемент влево, и результат больше, чем моя цель, элемент переходит влево и это то, что мне нужно. Но есть что-то вроде ошибки - следующий элемент в ListView, который скрыт от экрана, также перемещается влево и следующий, и следующий, и т. Д.
Я имею в виду: на экране у меня 4 элемента и 10 скрытых. Когда я перемещаю первый и прокручиваю вниз, 5-й и 9-й также сдвигаются влево. Если я сдвигаю 2-е, 6-е и 10-е скользят.