Overriden MvxAndroidSetup.CreateIocProvider打破与MvxBind的绑定:错误:找不到视图类型 - LinearLayout(TextView,EditText ...)

时间:2015-11-02 14:30:31

标签: android xamarin ninject mvvmcross

我有几个使用Ninject进行IoC的PCL。现在我正在尝试用MvvmCross创建一个Android Xamarin项目。 guide表示我可以按照两个步骤继续使用Ninject而不是MvvmCross实现。

这是我的Setup.cs:

public class Setup : MvxAndroidSetup
{
    ...

    protected override IMvxIoCProvider CreateIocProvider()
    {
        return new NinjectMvxIocProvider(... some NinjectModule[]...);
    }
}

我接受了NinjectMvxIocProvider here的实施。

对我来说这看起来很合适,但是对于我的布局中的所有视图都会产生这种输出:

MvxBind:Error: 70.85 View type not found - EditText [0:]  
MvxBind:Error: 70.85 View type not found - EditText  
11-02 15:56:05.872 I/mono-stdout( 4824): MvxBind:Error: 70.85 View type not found - EditText

并且绑定不起作用,尽管使用正确的服务实现正确创建了ViewModel。

如果我从override IMvxIoCProvider CreateIocProvider()移除Setup.cs绑定有效。

这个实现有什么问题,我看不到吗?也许有人有另一个实现,并准备分享?

1 个答案:

答案 0 :(得分:0)

做这样的设置怎么样?

public static class App
{
    public static StandardKernel Container { get; set; }

    public static void Initialize()
    {
        var kernel = new Ninject.StandardKernel(new NinjectDemoModule());           

        App.Container = kernel;
    }
}

然后解决:

var viewModel = App.Container.Get<MainViewModel> (); 

以下是工作示例:IoC Containers with Xamarin