找不到视图模型的视图

本文关键字:视图 模型 找不到 | 更新日期: 2023-09-27 17:57:10

我无法使用Caliburn.Micro找到任何视图。引导程序启动,但随后出现一个通用窗口,显示没有任何 ShellViewModel 的视图,即使有 ShellView.xaml。怎么办?

引导程序

public sealed class AppBootstrapper : BootstrapperBase
{

    private IKernel _kernel;
    #region Bootstrapper
    public AppBootstrapper()
    {
        Start();
    }
    protected override void Configure()
    {
        _kernel = new StandardKernel();
        _kernel.Bind<IWindowManager>().To<WindowManager>().InSingletonScope();
        _kernel.Bind<IEventAggregator>().To<EventAggregator>().InSingletonScope();
        _kernel.Bind<IShell>().To<ShellViewModel>();
    }
    protected override void OnStartup(object sender, System.Windows.StartupEventArgs e)
    {
        DisplayRootViewFor(typeof (IShell));
    }
    protected override void OnExit(object sender, EventArgs e)
    {
        _kernel.Dispose();
        base.OnExit(sender, e);
    }
    protected override object GetInstance(Type serviceType, string key)
    {
        if (serviceType != null) {
            return _kernel.Get(serviceType);
        }
        throw new ArgumentNullException("serviceType");
    }
    protected override IEnumerable<object> GetAllInstances(Type serviceType)
    {
        return _kernel.GetAll(serviceType);
    }
    protected override void BuildUp(object instance)
    {
        _kernel.Inject(instance);
    }
    #endregion
    }
}

壳视图模型

 public sealed class ShellViewModel : Screen, IShell
{
    public ShellViewModel()
    {
        DisplayName = "Hello";
    }
}

找不到视图模型的视图

您可能需要使用 SelectAssemblies 的覆盖来告诉 CM 视图和视图模型的".dll"在哪里。 否则它将永远找不到它们。 我通常也在我的项目中使用它,它应该可以解决您的问题。