首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Xamarin表单中的MR.Gestures从长按事件的列表视图中查找长按选定项

如何使用Xamarin表单中的MR.Gestures从长按事件的列表视图中查找长按选定项
EN

Stack Overflow用户
提问于 2017-05-05 13:57:37
回答 3查看 2.7K关注 0票数 0

我在列表视图上使用MR.Gestures进行长按事件。我可以触发长按事件,但不能让listview选择长按项。

代码语言:javascript
复制
 <mr:ListView  x:Name="listView"
    ItemsSource="{Binding downloadedLessonsData}"
    LongPressedCommand="{Binding LongPressedCommand}"
    LongPressingCommandParameter="{Binding SelectedItem}"
    >

代码语言:javascript
复制
  protected virtual void OnLongPressed(LongPressEventArgs e)
    {
     MR.Gestures.ListView list=   (MR.Gestures.ListView) (e.Sender);
     //list.LongPressedCommandParameter; LongPressedCommandParameter is 
     //comming null, unable to get selectedItem
     Debug.WriteLine("OnLongPress");
     }

但是我无法在OnLongPressed方法中选择长时间按下的项目。请建议如何在OnLongPressed方法中获取选中的长按压列表项。我是第一次接触xamarin表单。提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-05-05 14:28:24

选定项目MR.Gestures.ListView list=(MR.Gestures.ListView) (e.Sender);的强制转换

是错误的。如果每个选定的项都是一个集合,则必须将其强制转换为model。

protected virtual void OnLongPressed(LongPressEventArgs e) { var selectedItem=(Model name be be given)e.Sender; ' //now you will get the selected model in selectedItem' }

如果每个选定的项都是单个值(例如: string),则必须将其转换为数据类型。

protected virtual void OnLongPressed(LongPressEventArgs e) { var selectedItem=(string)e.Sender; ' //now you will get the selected string in selectedItem' }

票数 1
EN

Stack Overflow用户

发布于 2017-05-05 14:17:08

相反,请尝试https://github.com/pateljay0323/XamarinFormsGestures

查找SingleTap、DoubleTap、LongPress、Swipe、Pinch、Move、Up、Down等。

这也会节省你的许可费。

票数 0
EN

Stack Overflow用户

发布于 2017-05-05 18:23:37

您可以使用listView.SelectedItem (因为当您触摸单元格时将设置所选项目),也可以在每个Cell上处理LongPress。然后在sender中获得按下的Cell

在您的代码中,OnLongPressed方法的签名是错误的,但是如果它被执行,那么这只是一个复制粘贴错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43797514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档