С Mvx 4 многое изменилось. Вы должны прочитать документацию , блоги и руководства по миграции ( от 4 до 5 , из 5 до 6 ).
О трассировках, предупреждениях, ошибках, теперь у Mvx появился новый способ Диагностика и ведение журнала . Вы должны ввести / разрешить 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());
}
}
Если вы не хотите ничего возвращать, просто сделайте _navigationService.Close(this)
(конечно, для этого вам нужно удалить параметр общего типа MyReturnObject
) и все.
Е.И.В.