You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:57:30