使用MVVMCross内置工厂创建视图模型?

时间:2013-06-26 18:30:45

标签: xamarin.ios xamarin.android xamarin mvvmcross

我有一种情况,我想“解析”视图模型,而不必手动调用IoC容器来解析视图模型依赖项。

我假设内部Mvvmcross有一个viewmodel工厂,用于在注入依赖项时创建视图模型。

我可以直接打电话吗?如果是这样,它叫什么以及这些工厂驻留在什么命名空间?

基本上我要做的是为tabcontroller创建一个“HomeViewModel”,但不想为每个“tabs”视图模型硬编码依赖项解析。

1 个答案:

答案 0 :(得分:3)

我个人所做的是在我的HomeViewModel中使用IoC来获取嵌套ViewModel的所有依赖项,并在实例化它们时传递它们。所以有类似的东西:

private ITwitterService _twitterService;
private IFacebookService _facebookService;
private IDataProcessingService _dataProcessingService;
private TwitterViewModel _twitterViewModel;
private FacebookViewModel _facebookViewModel;

public HomeViewModel(ITwitterService t, IFacebookService f, IDataProcessingService d)
{
    _twitterService = t;
    _facebookService = f;
    _dataProcessingService = d;
    _twitterViewModel = new TwitterViewModel(_twitterService, _dataProcessingService);
    _facebookViewModel = new FacebookViewModel(_facebookService, _dataProcessingService);
}

然后我只是在我的标签中使用ViewModel的那些实例。