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

Xamarin为何无法响应ViewModel中绑定的Command命令

Xamarin Command 绑定失效问题修复

问题根因

你的ViewModel类使用了internal访问修饰符,Xamarin.Forms的绑定系统在解析Command绑定时,仅能反射访问public级别的类型和成员,internal类型的Command属性会被绑定引擎直接忽略,因此不会触发执行逻辑。普通事件绑定是直接在代码层面关联,不依赖跨程序集的反射成员查找,因此可以正常生效。

修复步骤

  • 将MainVM类的访问修饰符从internal修改为public
  • 确认项目中使用的RelayCommand实现为public类型,且正确实现了ICommand接口
  • 清理解决方案后重新生成项目,清除旧的XAML编译缓存

修正后的ViewModel代码

namespace TestXamarinMvvm.ViewModels
{
    public class MainVM : BaseVM
    {
        public MainVM()
        {
            TestCommand = new RelayCommand(obj =>
            {
                App.Current.MainPage.DisplayAlert("Work", "It is working.", "OK");
            });
        }

        public RelayCommand TestCommand { get; }
    }
}

你提供的XAML视图代码绑定写法本身没有问题,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:12:17