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

.NET MAUI中如何为MenuBarItem添加点击功能?

.NET MAUI MenuBarItem 点击事件实现方案

MenuBarItem 本身是菜单容器控件,仅用于承载子菜单(比如 MenuFlyoutItem),并不提供 Clicked 事件,这就是你报错的原因。要实现点击触发逻辑,需要给它内部添加可交互的 MenuFlyoutItem,再绑定事件或命令,以下是两种常用实现方式:

方法一:后台代码绑定 Clicked 事件

  1. 修改 XAML 结构,将独立的 Exit MenuBarItem 改为包含 MenuFlyoutItem 的容器:
<ContentPage.MenuBarItems>
    <!-- 其他菜单保持不变 -->
    <MenuBarItem Text="Exit">
        <MenuFlyoutItem Text="Exit" Clicked="Exit_Clicked" />
    </MenuBarItem>
</ContentPage.MenuBarItems>
  1. 在页面的后台代码(.xaml.cs 文件)中实现点击事件逻辑:
private void Exit_Clicked(object sender, EventArgs e)
{
    // 关闭应用
    Application.Current.Quit();
}

方法二:MVVM 模式绑定命令(推荐)

如果你的项目采用 MVVM 架构,更推荐通过命令绑定实现:

  1. 在 ViewModel 中定义 ExitCommand:
using Microsoft.Maui.Controls;
using System.Windows.Input;

public class YourViewModel
{
    public ICommand ExitCommand { get; }

    public YourViewModel()
    {
        ExitCommand = new Command(() => Application.Current.Quit());
    }
}
  1. 在 XAML 中绑定命令(确保页面已设置 BindingContext 为对应的 ViewModel):
<ContentPage.MenuBarItems>
    <!-- 其他菜单保持不变 -->
    <MenuBarItem Text="Exit">
        <MenuFlyoutItem Text="Exit" Command="{Binding ExitCommand}" />
    </MenuBarItem>
</ContentPage.MenuBarItems>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:17:02