2
respostas

Produtos Lanchonete

to com um problema em um projeto pessoal.

um catalogo de produtos

quando a quantidade do estoque é mais q 1 funciona normalmente. mas quando 1 produto ta com 0 no estoque, ele trava a aplicação. eu preciso mostrar os produtos mesmo quando nao tenha no estoque.

<StackLayout Orientation="Horizontal">
    <Label Text="{Binding Source={x:Reference quantidade}, Path=Value, StringFormat='Qt:{0}'}"  FontSize="20" VerticalTextAlignment="Center"  HorizontalTextAlignment="Center"  />
    <Stepper Minimum="0" Maximum="{Binding estoque}" Increment="1" Value="{Binding quantidade, Mode=TwoWay}" ValueChanged="OnQuantityChanged" x:Name="quantidade" />
</StackLayout>
2 respostas

Olá, INSTITUTO ADVENTISTA

Nesse XAML, o componente Stepper tem como máximo a propriedade estoque e como valor a propriedade quantidade. Imagino que se o estoque for zero e a quantidade for maior que zero, a aplicação irá gerar um erro, correto? Nesse caso você pode colar aqui a classe que contém essas duas propriedades? Aí poderemos sugerir uma "proteção" para evitar que a quantidade ultrapasse o valor do estoque.

Ola Marcelo,

a quantidade é sempre zero. porque essa é a quantidade de produtos q ele vai querer. A minha ideia era quando o estoque nao tiver nenhum produto, ele simplesmente disabilitar o stepper pro usuario nao poder selecionar. só que quando o Maximo fica em 0, ele ta bugando, mesmo com o valor 0.

segue o codigo da conexão.

Outra duvida é, Tem como fazer um binding de uma foto passando Base64? tentei jogar direto o texto no Souce mas nao deu.

public async Task GetProdutos()
        {
            IsRefreshing = true;
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(URL);

                    var body = String.Format("action={0}&cantina={1}", "getProdutos", CantinaSel.idcantina);
                    StringContent theContent = new StringContent(body, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");

                    var result = await client.PostAsync("cantinas", theContent);
                    //Debug.WriteLine(result);
                    string resultContent = await result.Content.ReadAsStringAsync();
                    if (result.IsSuccessStatusCode)
                    {
                        var produtosJson = JsonConvert.DeserializeObject<ProdutosModel[]>(resultContent);
                        if (produtosJson.Length > 0)
                        {
                            this.Produtos.Clear();
                            foreach (var produtoJson in produtosJson)
                            {
                                this.Produtos.Add(new ProdutosModel
                                {
                                    idproduto = produtoJson.idproduto,
                                    img = produtoJson.img,
                                    produto = produtoJson.produto,
                                    descricao = produtoJson.descricao,
                                    preco = produtoJson.preco,
                                    quantidade = produtoJson.quantidade, /*Sempre inicia com 0*/
                                    estoque = produtoJson.estoque
                                });
                            }
                        }
                        await GetSaldo();
                    }
                }
            }
            catch (Exception ex)
            {
                MessagingCenter.Send(ex, "FalhaProdutoSelecionado");
            }
            IsRefreshing = false;

        }