在 MVVMCross 的 viewModel class 中实现新接口后,视图未打开
View is not opening after implementing new interface in viewModel class in MVVMCross
我正在使用 MVVMCross 创建一个 android 应用程序,我有一个工作正常的 viewModel class。在我为此实现了一个新界面后,视图未打开。
界面和视图模型如下。
视图模型:
public sealed class PuCreationViewModel : BaseDataScreenViewModel
{
private readonly IProjectPuManager _puManager;
public PuCreationViewModel(
IProjectPuManager puManager )
{
_puManager = puManager;
}
}
接口:
public interface IProjectPuManager
{
string CreatePu(string projectId, PuEntity entity);
}
实施class:
public class ProjectPuManager : IProjectPuManager
{
private readonly IFirebaseRepository<PuEntity> _puRepository;
public ProjectPuManager(IFirebaseRepository<ProjectPuEntity> puRepository)
{
_puRepository = puRepository;
}
public string CreatePu(string projectId, PuEntity entity)
{
_puRepository.CreateReference(
$"{AppConstants.Firebase.Key.ProjectPi.Root}/{projectId}");
return _puRepository.Create(entity, true);
}
}
在app.cs
注册接口
Mvx.RegisterType<IProjectPuManager, ProjectPuManager>();
在我的例子中,我错过了创建用于转换实体的映射器文件。我认为 运行 应用程序不需要映射器,但映射器对于管理器来说是必需的。否则,应用程序不会打开,也不会向您显示任何错误。
我正在使用 MVVMCross 创建一个 android 应用程序,我有一个工作正常的 viewModel class。在我为此实现了一个新界面后,视图未打开。 界面和视图模型如下。
视图模型:
public sealed class PuCreationViewModel : BaseDataScreenViewModel
{
private readonly IProjectPuManager _puManager;
public PuCreationViewModel(
IProjectPuManager puManager )
{
_puManager = puManager;
}
}
接口:
public interface IProjectPuManager
{
string CreatePu(string projectId, PuEntity entity);
}
实施class:
public class ProjectPuManager : IProjectPuManager
{
private readonly IFirebaseRepository<PuEntity> _puRepository;
public ProjectPuManager(IFirebaseRepository<ProjectPuEntity> puRepository)
{
_puRepository = puRepository;
}
public string CreatePu(string projectId, PuEntity entity)
{
_puRepository.CreateReference(
$"{AppConstants.Firebase.Key.ProjectPi.Root}/{projectId}");
return _puRepository.Create(entity, true);
}
}
在app.cs
注册接口Mvx.RegisterType<IProjectPuManager, ProjectPuManager>();
在我的例子中,我错过了创建用于转换实体的映射器文件。我认为 运行 应用程序不需要映射器,但映射器对于管理器来说是必需的。否则,应用程序不会打开,也不会向您显示任何错误。