Declare a Liststring and display in xaml

1

I'm trying to make a List string in xamarin, this list auto-increments according to whether an attribute is declared as true;

public bool TemPão       { get; set; }
    public bool TemBife      { get; set; }
    public bool TemPresunto  { get; set; }
    public bool TemMussarela { get; set; }
    public bool TemOvo       { get; set; }
    public bool TemBacon     { get; set; }
    public bool TemCheddar   { get; set; }
    public bool TemCalabresa { get; set; }
    public bool TemCatupiri  { get; set; }
    public bool TemSalada    { get; set; }

    public string IngredientesPrato
    {
        get
        {
            List<string> Ingredientes = new List<string>();
            if (TemPão)      { Ingredientes.Add("Pão");            }
            if (TemBife)     { Ingredientes.Add("Bife");           }
            if (TemPresunto) { Ingredientes.Add("Presunto");       }
            if (TemMussarela){ Ingredientes.Add("Mussarela");      }
            if (TemOvo)      { Ingredientes.Add("Ovo");            }
            if (TemBacon)    { Ingredientes.Add("Bacon");          }
            if (TemCheddar)  { Ingredientes.Add("Cheddar");        }
            if (TemCalabresa){ Ingredientes.Add("Calabresa");      }
            if (TemCatupiri) { Ingredientes.Add("Catupiri");       }
            if (TemSalada)   { Ingredientes.Add("Alface, Tomate"); }
            //return string.Join(", ", Ingredientes);
            string ingredientes="";
            foreach(string ingrediente in Ingredientes)
            {
                ingredientes += ingrediente + ", ";
                ingredientes = ingrediente.TrimEnd(',') + ".";

            }
            return ingredientes;
        }

I just could not test it yet, as I can not declare the IngredientPrato in my listing

namespace AppGourmet.Models

public class ListagemPratos
{
    public List<Pratos> Pratos { get; private set; }

    public List<Ingredientes> Ingredientes { get; set; }

    public ListagemPratos()
    {
        this.Pratos = new List<Pratos>()
        {
            new Pratos { Nome = "X-Burger", Preco = 10, ImageLanche="Burger.png",
                TemPão = true, TemBife = true, TemPresunto = true, TemSalada = true,TemBacon=false,
                TemCalabresa=false,TemOvo=true,TemCheddar=false,TemCatupiri=false,TemMussarela=false,
                //declaração do IngredientePrato},
        };
    }
}

and finally, "bind" in xaml by displaying the list horizontally

<ListView x:Name="ListViewPratos"
          BackgroundColor="White"
          ItemsSource="{Binding Pratos}"
          SelectedItem="{Binding PratoSelecionado}"
          HasUnevenRows="True">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <ViewCell.View>
                    <StackLayout Orientation="Vertical" BackgroundColor="White" Margin="10">
                        <StackLayout Orientation="Horizontal" BackgroundColor="White">
                            <Image Source="{Binding ImageLanche}" HeightRequest="65" WidthRequest="65"></Image>
                            <Label Text="{Binding Nome}" FontSize="20" VerticalOptions="Center" TextColor="Blue"></Label>
                            <Label Text="  " HorizontalOptions="StartAndExpand" VerticalOptions="Center"></Label>
                            <Label Text="{Binding PrecoFormatado}" FontAttributes="Bold" VerticalOptions="Center" TextColor="Black"></Label>
                        </StackLayout>

                       //bindar a List<string> horizontalmente

                    </StackLayout>
                </ViewCell.View>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
    
asked by anonymous 01.09.2017 / 18:58

0 answers