Xamarin.Forms编程创建SwipeView时SwipeItem的Invoked事件不触发
问题原因
你编写C#创建逻辑时出现了属性赋值错误:
你提前创建了items集合并正确配置了Mode = SwipeMode.Execute、添加了SwipeItem,但在给SwipeView.LeftItems属性赋值时,又额外实例化了一个全新的SwipeItems对象包裹原有集合。这个新创建的SwipeItems对象没有手动设置Mode属性,会使用默认的SwipeMode.Reveal模式,该模式下滑动超过阈值只会展示操作按钮,不会自动触发Invoked事件。
修复方法
直接将你已经配置完成的items集合赋值给LeftItems属性即可,不需要额外嵌套创建新的SwipeItems实例,修正后的核心代码段如下:
// 省略Grid、Label、SwipeItem的创建代码 SwipeItems items = new SwipeItems { Mode = SwipeMode.Execute }; items.Add(delete); SwipeView swipe = new SwipeView { Threshold = 80, // 直接赋值配置好的items集合,不要嵌套new新实例 LeftItems = items, Content = grid }; delete.Invoked += SwipeItem_Invoked; hg.Children.Add(swipe);
如果你因业务需求必须新建SwipeItems实例,一定要记得给新实例也设置Mode = SwipeMode.Execute,否则执行模式的配置不会生效。
内容的提问来源于stack exchange,提问作者rana hd
相关产品推荐
相关产品推荐

