Boa noite, reparei aqui que na ListagemView.xaml, para estabelecer qual é o bindingContext da tela, foi feito da seguinte forma:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:TestDrive"
xmlns:vm="clr-namespace:TestDrive.ViewModels"
x:Class="TestDrive.Views.ListagemView"
Title="Test Drive">
<!-- xmlns:vm vai dizer ao xaml onde estão meus viewmodels -->
<!-- ContentPage.BindingContext vai dizer qual classe é o meu viewmodel -->
<ContentPage.BindingContext>
<vm:ListagemViewModel></vm:ListagemViewModel>
</ContentPage.BindingContext>
resto do código...
nas outras telas, manteve como era antes do MVVM e na propriedade this.BindingContext simplesmente se passou um objeto do ViewModel.
Fiz o teste na ListagemView, removendo o código que colei acima e mantendo da forma "antiga", com o this.BindingContext = new ListagemViewModel();
Funcionou igual...
Alguma razão especial para fazer da forma onde se diz o bindingContext no arquivo .xaml?