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

Código da MainPage não reconhece elementos do layout

Pessoal,

Estou na aula 1 vídeo 4, onde é passada "linkagem" do elemento da view para o código por traz dela. Fiz tudo conforme está no vídeo, mas ao tentar pegar o valor do Stepper stpCalorias não está reconhecendo. Segue o código:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="AluraNutricao.MainPage">

  <ContentPage.Content>
    <StackLayout Padding="25">
      <Label Text="Cadastro de Refeição" FontSize="24" />
      <Label Text="Descrição" />
      <Entry Placeholder="Ex: Filé de Frango" />
      <StackLayout Orientation="Horizontal">
        <Label Text="Calorias:" />
        <Label Text="10" />
      </StackLayout>
      <Stepper x.Name="stpCalorias" Minimum="10" Maximum="1000" />
      <Button Text="Salvar" />
    </StackLayout>
  </ContentPage.Content>

</ContentPage>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;

namespace AluraNutricao
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        public void AtualizaContador(Object sender, EventArgs e)
        {
            double valor = stpCalorias.Value;  //Não reconhece
        }
    }
}
3 respostas

Olá, Matheus!

Ocorre um erro na aplicação quando você roda? É um erro de compilação ou de execução? Você consegue colocar breakpoints e fazer o programa parar nessa linha?

Às vezes o meu código Xamarin não funciona, então descubro que tenho que ir no emulador e desinstalá-lo. Depois eu limpo a solução (Clean Solution) no Visual Studio e rodo de novo.

Quem sabe não é isso?

Boa sorte e bons estudos!

Marcelo,

No caso não dá pra compilar o app, se eu der um Crtl+Space no stdCalorias , ele não existe. Dei uma estudada sobre o Code-Behind, não sei se estou certo, mas o que entendi é que ele já faz o link do elemento lá no XAML com o código por trás, e esse link não está acontecendo, eu já coloque x.Name e ainda assim não deu. No android por exemplo é o findByView, certo? Simplesmente não encontra o meu Stepper stpCalorias.

solução!

Desculpe,

Achei o problema! Eu coloquei "ponto" x.stpCalorias ao invés de "dois pontos" x:stpCalorias.

Agora foi rs.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software