|
private void button_Clicked(object sender, EventArgs e)
{
var btn = sender as Button;
Device.BeginInvokeOnMainThread(async () =>
{
VisualContainer visualContainer = listView.GetVisualContainer();
int count = visualContainer.Children.Count();
Random r = new Random();
int index = r.Next(0, count);
var swipeController = listView.GetType().GetRuntimeProperties().FirstOrDefault(ptyname => ptyname.Name == "SwipeController").GetValue(listView);
var item = visualContainer.Children[0];
if (item is SwipeView)
return;
var swipeItem = item.GetType().GetRuntimeProperties().FirstOrDefault(x => x.Name =="ListViewItemInfo").GetValue(item);
if (swipeItem == null)
return;
var iteminfo = swipeItem as ListViewItemInfoBase;
var position = iteminfo.GetType().GetRuntimeProperties().FirstOrDefault(x => x.Name =="InitialPosition");
position.SetValue(iteminfo, 10);
var swipeStarted = swipeController.GetType().GetRuntimeMethods().FirstOrDefault(methd => methd.Name == "ProcessTouchMove");
swipeStarted.Invoke(swipeController, new object[] { iteminfo, new Point(120, 10) });
await Task.Delay(1000);
});
}
//You can call this method to reset the swiped item
//listView.ResetSwipe();
|