首页 文章

如果我继承了从MvxViewModel派生的基础ViewModel,则不会调用mvvmcross Init方法

提问于
浏览
1

首先我正在使用 mvvmcross version 3.0.13 . 当从继承自 MvxViewModel 的基类继承类时,不会从IoC调用Init方法 . 目前丑陋的解决方法是在构造函数中调用Init . 这可能是一个错误还是有其他模式可以使用?

在这两个类(基础和基础的子)中,它不会被调用 . 例如:

public class BaseViewModel : MvxViewModel
{
    protected CDataImportService DataImportService { get; private set; }
    protected CSettingService SettingService { get; private set; }
    protected CDataService DataService { get; private set; }
    protected CDocumentService DocumentService { get; private set; }

    public BaseViewModel(IDataService objDataService, IDataImportService objDataImportService, IDocumentService objDocumentService, ISettingService objSettingService)
    {
        DataImportService = (CDataImportService)objDataImportService;
        SettingService = (CSettingService)objSettingService;
        DataService = (CDataService)objDataService;
        DocumentService = (CDocumentService) objDocumentService;
    }

    public void Init()
    {
        Mvx.Trace("Init called in {0}", GetType().Name);
    }
}

public class DocumentsViewModel : BaseViewModel
{
    public MenuViewModel(IDataService objDataService, IDataImportService objDataImportService, IDocumentService objDocumentService, ISettingService objSettingService)
        : base(objDataService, objDataImportService, objDocumentService, objSettingService)
    {
    }
}

1 回答

相关问题