C# MvvmCross并将视图模型注入到视图构造函数中
在MvvmCross中是否可以将视图模型注入到视图的构造函数中 “我的视图”的构造函数如下所示:C# MvvmCross并将视图模型注入到视图构造函数中,c#,windows-phone,windows-phone-8.1,mvvmcross,win-universal-app,C#,Windows Phone,Windows Phone 8.1,Mvvmcross,Win Universal App,在MvvmCross中是否可以将视图模型注入到视图的构造函数中 “我的视图”的构造函数如下所示: public HomeView(IHomeViewModel viewModel) { ... } 在Setup.cs class I中,使用以下命令手动将视图模型映射到视图: protected override void InitializeViewLookup() { IDictionary<Type, Type> lookups = new Dictionary<Ty
public HomeView(IHomeViewModel viewModel)
{
...
}
在Setup.cs class I中,使用以下命令手动将视图模型映射到视图:
protected override void InitializeViewLookup()
{
IDictionary<Type, Type> lookups = new Dictionary<Type, Type>
{
{typeof(HomeViewModel), typeof(HomeView)}
};
IMvxViewsContainer container = Mvx.Resolve<IMvxViewsContainer>();
container.AddAll(lookups);
}
当我运行应用程序时,视图显示为渲染,但没有任何控件可见。另外,如果我在构造函数中放置断点,它不会被命中
所以我想知道这是否可行,或者我是否需要在视图内部手动创建视图模型
另外,我正在创建一个Windows Phone通用应用程序
在MvvmCross中是否可以将视图模型注入到视图的构造函数中
在Windows的情况下,它可能是-如果你能找出谁构造了视图(它会在某个地方的框架中?),如果你能覆盖它以使用IoC容器
然而,从实际的角度来看,这可能是更多的努力比它的价值
相反:
- 您可以只使用默认的MvvmCross ViewModel构造/查找机制,该机制在导航到时提供ViewModel(然后还允许使用导航参数)
- 您可以发明自己的服务提供商查找-例如,在视图构造函数期间(或其他地方)使用
Mvx.Resolve
从问题的这一部分,我猜有些事情只是“出了问题”——但很难从问题中知道什么。要尝试调试它,您可以检查调试跟踪,您可以与正在运行的示例应用进行比较,您可以单步执行代码,等等。如果所有其他操作都失败,请下拉到一个非常简单的入门应用程序,并尝试调试…我认为您的看法是正确的,在注入构造函数时,您付出的努力超过了它的价值。我不知道视图模型是作为导航参数的一部分传递的,但它确实解决了这个问题。谢谢你的帮助。
Mvx.RegisterType<IHomeViewModel, HomeViewModel>();