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

Caliburn.Micro在Xamarin.Forms中绑定失效及配置相关问题咨询

一、Caliburn.Micro维护状态与替代方案

Caliburn.Micro目前已基本停止活跃维护,最新稳定版发布于2020年,后续仅偶发极小的兼容性修复,Xamarin相关的适配更新早已停滞。
可替代的同类MVVM框架如下:

  • CommunityToolkit.Mvvm:微软官方维护的轻量MVVM框架,无额外依赖,性能优异,支持Xamarin.Forms、MAUI、WPF等所有.NET平台,是目前官方首推的方案
  • Prism:生态成熟,对Xamarin.Forms、MAUI的路由、依赖注入、导航封装非常完善,社区活跃度高
  • MvvmCross:跨平台支持全面,适合多端复用逻辑的复杂项目

二、Xamarin.Forms中Caliburn.Micro的配置步骤

需要额外配置Bootstrapper,具体操作如下:

步骤1:创建自定义Bootstrapper类

using Caliburn.Micro;
using Xamarin.Forms;

public class AppBootstrapper : BootstrapperBase
{
    private SimpleContainer _container;

    public AppBootstrapper()
    {
        Initialize();
    }

    // 配置依赖注入容器
    protected override void Configure()
    {
        _container = new SimpleContainer();
        _container.Instance(_container);
        // 注册应用实例
        _container.Singleton<App>();
        // 注册你用到的所有ViewModel
        _container.PerRequest<AboutViewModel>();
    }

    // 重写实例获取逻辑对接容器
    protected override object GetInstance(Type service, string key)
    {
        return _container.GetInstance(service, key);
    }

    protected override IEnumerable<object> GetAllInstances(Type service)
    {
        return _container.GetAllInstances(service);
    }

    protected override void BuildUp(object instance)
    {
        _container.BuildUp(instance);
    }

    // 配置启动页
    protected override void OnStartup(object sender, StartupEventArgs e)
    {
        DisplayRootViewForAsync<AboutViewModel>();
    }
}

步骤2:修改App.xaml.cs逻辑

删除原有构造函数中设置MainPage的代码,改为实例化Bootstrapper:

public partial class App : Application
{
    public App()
    {
        InitializeComponent();
        // 无需手动设置MainPage,Bootstrapper会自动关联ViewModel与View
        new AppBootstrapper();
    }
}

额外注意事项

Caliburn.Micro默认使用PascalCase命名约定匹配控件与方法,你现有代码中方法名test为小写,与x:Name一致但不符合默认约定,要么将方法名改为Test,要么在Bootstrapper的Configure方法中添加规则修改命名匹配逻辑。

三、依赖包说明

你已安装的Caliburn.Micro.Core和Caliburn.Micro.Xamarin.Forms两个包已满足需求,无需安装其他额外依赖。需要注意两个包的版本必须完全一致,且要和你使用的Xamarin.Forms版本兼容,若使用较高版本Xamarin.Forms,可能存在适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:51:01