MVVMcross 从 4 升级到 6.2.1 出现错误 Mvx 不包含关闭跟踪错误、警告等的定义
MVVMcross upgrade from 4 to 6.2.1 getting error Mvx does not contain definition of Close Trace Error , warning etc
升级 mvvmcross 6.2.1 后出现错误 Mvx 不包含定义
痕迹、警告、错误等
自 Mvx 4 以来发生了很多变化。您应该阅读 documentation, blogs and migration guides (from 4 to 5, from 5 to 6)。
关于跟踪、警告、错误,现在 Mvx 有一个新的方法可以做 Diagnostic & Logging。你必须 inject/resolve IMvxLog
在那里你将拥有所有的方法来进行跟踪、警告、错误等。
public class MyViewModel : MvxViewModel
{
private readonly IMvxLog _log;
public MyViewModel(IMvxLog log)
{
_log = log;
}
private void SomeMethod()
{
_log.Trace("Some message");
}
}
为了关闭视图模型,您需要使用新的 Navigation 系统:
public class MyViewModel : MvxViewModel
{
private readonly IMvxNavigationService _navigationService;
public MyViewModel(IMvxNavigationService navigation)
{
_navigationService = navigationService;
}
public override void Prepare()
{
// first callback. Initialize parameter-agnostic stuff here
}
public override async Task Initialize()
{
await base.Initialize();
// do the heavy work here
}
public async Task SomeMethod()
{
var result = await _navigationService.Navigate<NextViewModel, MyObject, MyReturnObject>(new MyObject());
//Do something with the result MyReturnObject that you get back
}
}
public class NextViewModel : MvxViewModel<MyObject, MyReturnObject>
{
private readonly IMvxNavigationService _navigationService;
private MyObject _myObject;
public MyViewModel(IMvxNavigationService navigation)
{
_navigationService = navigationService;
}
public override void Prepare()
{
// first callback. Initialize parameter-agnostic stuff here
}
public override void Prepare(MyObject parameter)
{
// receive and store the parameter here
_myObject = parameter;
}
public override async Task Initialize()
{
//Do heavy work and data loading here
}
public async Task SomeMethodToClose()
{
await _navigationService.Close(this, new MyReturnObject());
}
}
如果你想 return 什么都不做,只需做 _navigationService.Close(this)
(当然你必须删除 MyReturnObject
的通用类型参数才能这样做)就是这样。
高
升级 mvvmcross 6.2.1 后出现错误 Mvx 不包含定义 痕迹、警告、错误等
自 Mvx 4 以来发生了很多变化。您应该阅读 documentation, blogs and migration guides (from 4 to 5, from 5 to 6)。
关于跟踪、警告、错误,现在 Mvx 有一个新的方法可以做 Diagnostic & Logging。你必须 inject/resolve IMvxLog
在那里你将拥有所有的方法来进行跟踪、警告、错误等。
public class MyViewModel : MvxViewModel
{
private readonly IMvxLog _log;
public MyViewModel(IMvxLog log)
{
_log = log;
}
private void SomeMethod()
{
_log.Trace("Some message");
}
}
为了关闭视图模型,您需要使用新的 Navigation 系统:
public class MyViewModel : MvxViewModel
{
private readonly IMvxNavigationService _navigationService;
public MyViewModel(IMvxNavigationService navigation)
{
_navigationService = navigationService;
}
public override void Prepare()
{
// first callback. Initialize parameter-agnostic stuff here
}
public override async Task Initialize()
{
await base.Initialize();
// do the heavy work here
}
public async Task SomeMethod()
{
var result = await _navigationService.Navigate<NextViewModel, MyObject, MyReturnObject>(new MyObject());
//Do something with the result MyReturnObject that you get back
}
}
public class NextViewModel : MvxViewModel<MyObject, MyReturnObject>
{
private readonly IMvxNavigationService _navigationService;
private MyObject _myObject;
public MyViewModel(IMvxNavigationService navigation)
{
_navigationService = navigationService;
}
public override void Prepare()
{
// first callback. Initialize parameter-agnostic stuff here
}
public override void Prepare(MyObject parameter)
{
// receive and store the parameter here
_myObject = parameter;
}
public override async Task Initialize()
{
//Do heavy work and data loading here
}
public async Task SomeMethodToClose()
{
await _navigationService.Close(this, new MyReturnObject());
}
}
如果你想 return 什么都不做,只需做 _navigationService.Close(this)
(当然你必须删除 MyReturnObject
的通用类型参数才能这样做)就是这样。
高