【问题标题】:Xamarin Forms with MVVM Navigation带有 MVVM 导航的 Xamarin 表单
【发布时间】:2017-08-29 08:48:21
【问题描述】:

我已将 MVVM Light 库添加到我的项目中,并创建了一个如下所示的 ViewModelLocator.cs 文件。

public class ViewModelLocator
{
    static ViewModelLocator()
    {
        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
        SimpleIoc.Default.Register<MainViewModel>();
    }

    /// <summary>
    /// Gets the Main property.
    /// </summary>
    public MainViewModel Main
    {
        get
        {
            return ServiceLocator.Current.GetInstance<MainViewModel>();
        }
    }
}

在我的 MainViewModel 上有 2 个导航到页面的命令:

public class MainViewModel : ViewModelBase
{
    public INavigation _Navigation { get; set; }

    public MainViewModel(INavigation navigation)
    {
        _Navigation = navigation;
    }

    public RelayCommand NavigateToPage1Command
    {
        get
        {
            return new RelayCommand(async() =>
            {
                await _Navigation.PushAsync(new Page1());
            });
        }
    }

    public RelayCommand NavigateToPage2Command
    {
        get
        {
            return new RelayCommand(async() =>
            {
                await _Navigation.PushAsync(new Page2());
            });
        }
    }

}

但是当应用程序启动时它会给出这个消息/错误:

ActivationException: Type not found in cache: Xamarin.Forms.INavigation.

我需要如何以及在哪里进行设置?也在 ViewModelLocator.cs 文件中?

【问题讨论】:

  • 我猜你需要在实现INavigation 接口的ViewModelLocator 构造函数中注册一些实际类型

标签: c# mvvm xamarin.forms navigation


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多