|
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();
|
|
private void Rightbutton_Clicked(object sender, EventArgs e)
{
Device.BeginInvokeOnMainThread(async () =>
{
VisualContainer visualContainer = listView.GetVisualContainer();
int count = visualContainer.Children.Count();
var width = visualContainer.Bounds.Width;
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, width - 10);
var swipeStarted = swipeController.GetType().GetRuntimeMethods().FirstOrDefault(methd => methd.Name == "ProcessTouchMove");
swipeStarted.Invoke(swipeController, new object[] { iteminfo, new Point(width - 160, 0) });
await Task.Delay(1000);
});
//You can call this method to reset the swiped item
//listView.ResetSwipe();
} |