Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

A chave fornecida não estava presente no dicionário.

Olá, quando eu coloco o objeto de usuário nos construtores começa a dar o seguinte erro "A chave fornecida não estava presente no dicionário." e o app nem executa mais, quando eu clico no erro ele aponta a seguinte linha

" " Na MaterDetail.xaml

MaterDetail.xaml completa

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ProjetoTeste.Views.MasterDetailView"
             xmlns:view="clr-namespace:ProjetoTeste.Views"
             >
    <MasterDetailPage.Master>
        <view:MasterView></view:MasterView>
    </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
        <NavigationPage>
            <x:Arguments>
                <view:ListagemView></view:ListagemView>
            </x:Arguments>
        </NavigationPage>
        <!--<view:ListagemView></view:ListagemView>-->
    </MasterDetailPage.Detail>

</MasterDetailPage>

Visual Studio 2017 versão do android no projeto: 6.0 versão do android no dispositivo: 7.0 Dispositivo: K10 2017

11 respostas

Olá, Cássio

Pelo código XAML que você postou não é possível descobrir o problema. Você pode postar aqui também a classe MasterView e o code behind da view MasterDetailView? Obrigado!

opa, desculpa a demora, estava viajando

seguem os códigos

MasterView:

[XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MasterView : ContentPage
    {

        public MasterViewModel ViewModel { get; set; }
        public MasterView (Usuario usuario)
        {
            InitializeComponent ();
            this.ViewModel = new MasterViewModel(usuario);
            this.BindingContext = this.ViewModel;
        }
    }

MasterDetailView:

[XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MasterDetailView : MasterDetailPage
    {
        private readonly Usuario usuario;

        public MasterDetailView (Usuario usuario)
        {
            InitializeComponent ();
            this.usuario = usuario;
        }
    }

aguardando...

Oi Cássio

Você pode postar aqui o código completo do arquivo MasterDetailView.xaml.cs? Desconfio que o namespace da classe MasterDetailView do code behind esteja diferente daquele declarado no arquivo XAML MasterDetailView.xaml da view.

using ProjetoTeste.Models;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace ProjetoTeste.Views
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MasterDetailView : MasterDetailPage
    {
        private readonly Usuario usuario;

        public MasterDetailView (Usuario usuario)
        {
            InitializeComponent ();
            this.usuario = usuario;
        }
    }
}

junto com o erro vem esses dois warnings

Aviso    IDE0006    Erro encontrado ao carregar o projeto. Alguns recursos do projeto, como a análise de solução completa e projetos que dependem dela, foram desabilitados.    ProjetoTeste.Android
Conflitos entre versões diferentes do mesmo assembly dependente que não puderam ser resolvidos.  Esses conflitos de referência estão relacionados no log de build quando o detalhamento do log está definido como detalhado.

professor, você não teria o projeto no VS2017 já com essa etapa pronta? tentei rodar o projeto do 2015 no 2017 porém não rodou, e não consigo instalar o xamarin para o 2015

Boa tarde, alguém pode me ajudar de alguma maneira, preciso dar continuidade ao curso

solução!

Olá, Cássio, por favor siga esses passos:

1) Baixe o projeto do final da aula no link: https://cursos.alura.com.br/course/xamarin-aplicativos-mobile-com-visual-studio-parte-3/task/24907

2) Clique com o botão direito sobre o nome do projeto e escolha o menu "Clean Solution"

3) No Visual Studio, entre no menu Tools > Nuget Package Manager > Package Manager Console

4) Na janela do Package Manager Console, aparecerá um botão para restaurar os pacotes do Nuget. Clique nesse botão Restore

5) Defina o projeto TestDrive.Droid como padrão (Set as Startup Project)

6) Rode a aplicação

Deu certo professor

Excelente, Cássio! E obrigado por participar do fórum, dessa forma podemos melhorar cada vez mais nossos cursos! Abs!