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

.NET MAUI:DevExpress AgendaView的Tap事件无法触发绑定方法

DevExpress.Maui.Scheduler AgendaView Tap事件无响应解决方案

1. 检查Scheduler全局交互权限

确保Scheduler控件的选择和编辑权限未被禁用,这会直接影响AgendaView的点击事件触发:

<dxsch:Scheduler 
    AllowAppointmentSelection="True"
    AllowAppointmentEditing="True">
    <dxsch:Scheduler.AgendaView>
        <!-- 你的AgendaView配置 -->
    </dxsch:Scheduler.AgendaView>
</dxsch:Scheduler>

2. 排查自定义ItemTemplate的事件拦截

如果给AgendaView设置了自定义ItemTemplate,检查模板内的控件是否设置了InputTransparent="True",或者自行处理了Tap事件导致事件无法向上冒泡:

<dxsch:AgendaView.ItemTemplate>
    <DataTemplate>
        <StackLayout>
            <!-- 移除InputTransparent="True"这类设置 -->
            <Label Text="{Binding Subject}" />
        </StackLayout>
    </DataTemplate>
</dxsch:AgendaView.ItemTemplate>

3. 替换为Scheduler全局AppointmentTap事件

如果AgendaView的Tap事件始终不生效,改用Scheduler控件的AppointmentTap全局事件,它能捕获所有视图中预约项的点击:

<dxsch:Scheduler AppointmentTap="Scheduler_AppointmentTap">
    <!-- ... -->
</dxsch:Scheduler>

后台方法实现:

void Scheduler_AppointmentTap(object sender, AppointmentTapEventArgs e)
{
    // 通过e.Appointment获取当前点击的预约项,执行你的业务逻辑
}

4. 升级DevExpress组件版本

部分旧版本的DevExpress.Maui.Scheduler存在AgendaView Tap事件的已知bug,升级到最新稳定版,查看官方更新日志确认是否修复相关问题。

5. 移除自定义GestureRecognizers

不要给AgendaView添加额外的GestureRecognizers,这会和组件内置的Tap事件产生冲突,优先使用组件提供的内置事件接口。

内容的提问来源于stack exchange,提问作者winona

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:28:15