Usuário com melhor resposta
Xamarim Form Cross Plataforma não executa Binding Command no xaml qual erro veja descrição ?

Pergunta
-
Olá Pessoal sou Manoel do Brasil Salvador Bahia.
xamarim agora é open source estou desenvolvendo um aplicativo teste no visual estúdio 2013, tudo esta ocorrendo e executa aplicação no emulador do visual studio android.
Coloquei um button no xaml chamando um Command com Binding ao executar aplicação rodar normal mais ao apertar no botao nao esta executado o metado chamando pelo commando na xaml ? qual erro?
vou postar as imagens do projeto em sequencia
Agradeço qualquer orientação eu ajuda também na pontuação.
-------Codigo da App---------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using Xamarin.Forms; namespace App1.OlaMundo { public class App : Application { public App() { MainPage = new View.LivrosView(); } protected override void OnStart() { // Handle when your app starts } protected override void OnSleep() { // Handle when your app sleeps } protected override void OnResume() { // Handle when your app resumes } } }
-----Codigo--LivroViewModel using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace App1.OlaMundo.ViewModel { public class LivroViewModel { public ICommand CarregarCommand { get; set; } public ObservableCollection<Model.Livro> Livros { get; set; } public void LivrosViewModel() { Livros = new ObservableCollection<Model.Livro>(); Livros.Add(new Model.Livro { Id = 1, titulo = "Primeiro Livro " }); CarregarCommand = new Xamarin.Forms.Command(() => { Livros.Add(new Model.Livro { Id = 1, titulo = "Livro x" }); }); } } }
----Codigo---XAML <?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="App1.OlaMundo.View.LivrosView"> <StackLayout Padding="20" Spacing="10"> <Button Text="Carregar" Command="{Binding CarregarCommand}"/> <ListView ItemsSource="{Binding Livros}"> <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding titulo}"> </TextCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackLayout> </ContentPage>
---Codigo livro using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace App1.OlaMundo.Model { public class Livro { public int Id { get; set; } public string titulo { get; set; } // public Autor Autor { get; set; } } }
Ao executar ao clica em carregar era para adicionar livro da ObservableCollection<Model.Livro> Livros { get; set; } Conforme o codigo postado LivroViewModel. Agradeço quem poder da uma orientação darei uma pontuação
- Editado Manoel Neto MSYS segunda-feira, 2 de maio de 2016 00:42
Respostas
-
Já consegui resolver o problema, tentei fazer outro projeto seguinte outra maneira de chama os métados na xaml.
resolvi seguindo este tutorial:
http://www.macoratti.net/15/12/xam_forms8.htm
se possível moderador Marcos Sj fechar esta pergunta agradeço.
- Marcado como Resposta Marcos SJ sexta-feira, 6 de maio de 2016 10:31
Todas as Respostas
-
Boa tarde Manoel Neto -Salvador Bahia,
Desculpe, não compreendi o problema descrito em sua postagem. O código está apresentando algum erro?
Se estiver, poderia compartilhar a mensagem de erro?
Atenciosamente
Marcos SJ
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Editado Marcos SJ segunda-feira, 2 de maio de 2016 13:22
-
O erro é que ao clicar no botão "carregar" era para criar um livro e exibir em um textcell na xaml, conforme postei no código, mas ao clicar nada acontece. Não aparece nenhum erro, mas não realiza nenhuma ação.
Era para executar da classe LivroviewModel conforme mostrado o código.
Primeiro executar a app, depois chama a view xaml e o metado carregar na interface xaml chama com Bindig coregar command na classe livroviewmodel.
Na classe tem um livroviewmodel tem um metado que era para cria um livro e lista na texto cell xaml.
public void LivrosViewModel() { Livros = new ObservableCollection<Model.Livro>(); Livros.Add(new Model.Livro { Id = 1, titulo = "Primeiro Livro " }); CarregarCommand = new Xamarin.Forms.Command(() => { Livros.Add(new Model.Livro { Id = 1, titulo = "Livro x" }); }); }
- Editado Marcos SJ terça-feira, 3 de maio de 2016 17:36 Edição
-
Bom dia Manoel Neto MSYS,
Tudo bem?
Desculpe a demora, vou solicitar auxílio de um recurso para te auxiliar com este problema. Obrigado por sua participação no fórum.
Atenciosamente
Marcos SJ Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Já consegui resolver o problema, tentei fazer outro projeto seguinte outra maneira de chama os métados na xaml.
resolvi seguindo este tutorial:
http://www.macoratti.net/15/12/xam_forms8.htm
se possível moderador Marcos Sj fechar esta pergunta agradeço.
- Marcado como Resposta Marcos SJ sexta-feira, 6 de maio de 2016 10:31