Метод подготовки модели представления MVVMCross не вызывается при горячей перезагрузке (вводе) изменений XAML

Я начал использовать MVVMCross несколько недель назад, и до сих пор он мне нравится, но я заметил, что всякий раз, когда я работаю над пользовательским интерфейсом и вношу изменения в XAML и нажимаю «Сохранить», что активирует горячую перезагрузку в Visual Studio 2019, я получение исключений нулевой ссылки.

Это связано с тем, что метод Prepare MVVMCross не вызывается. Согласно их документу, этот метод используется для передачи параметра виртуальной машине, который затем можно использовать во всей виртуальной машине.

    public override void Prepare(MyClass param)
    {
        MyClass = param;
    }

    public override Task Initialize()
    {
        MyClass.DoSomething();
        return base.Initialize();
    }

Так что это основное использование (я думаю). Однако, когда я перезагружаю изменения XAML, подготовка не вызывается, а инициализация вызывается, что вызывает исключение.

Это ошибка?


person henda79    schedule 08.12.2020    source источник


Ответы (1)


Подготовка в обычных случаях будет вызываться только при вызове NavigationService.Navigate.

Что на самом деле делает Hot Reload, неясно. Этот вариант использования в настоящее время официально не поддерживается MvvmCross.

person Cheesebaron    schedule 14.12.2020