【问题标题】:Show multiple items in listview xamarin forms在 listview xamarin 表单中显示多个项目
【发布时间】:2021-09-17 13:29:40
【问题描述】:

我是 C# 和 XAML 的新手,我正在开发一个允许您列出所有正在创建的旅行的旅行应用程序。

我在使用 ListView 显示所有行程时遇到问题。

我的问题:它只显示一次旅行,而不是所有已注册的旅行 我是 C# 和 XAML 的新手,我正在开发一个允许您列出所有正在创建的旅行的旅行应用程序。

我在使用 ListView 显示所有行程时遇到问题。

我的问题:它只显示一次旅行,而不是所有已注册的旅行

视图模型

public VerViajeViewModel()
    {

        string response = "";

        try
        {

            Task.Run(async () => {
            response= await apiRest.ConsultaViaje();

            }).Wait();

            List<Viaje> consulta = JsonConvert.DeserializeObject<List<Viaje>>(response);
            SfCardView cardView;

            foreach (Viaje consultas in consulta)
            {
                Items = new Viaje[]
                {
                 new Viaje(){Destino = consultas.Destino, Url= consultas.Url, FechaSalida= consultas.FechaSalida, FechaVuelta= consultas.FechaVuelta, Disponibilidad= consultas.Disponibilidad},

                };
               

            }

        }
        catch(Exception ex)
        {
            Console.WriteLine(ex);
        }
    }

}

Xaml

<ContentPage.BindingContext>
    <ViewModels:VerViajeViewModel></ViewModels:VerViajeViewModel>
</ContentPage.BindingContext>

<StackLayout VerticalOptions="FillAndExpand" >
    <Label Text="Mis Viajes" FontSize="Title" HorizontalOptions="CenterAndExpand"></Label>
    <ListView x:Name="EventListView"
              Margin="0,8,0,0"
              HasUnevenRows="True"
              SeparatorVisibility="None"
              ItemsSource="{Binding Items}">
        <ListView.ItemTemplate>
            <DataTemplate  >
                <ViewCell>
                    <cards:SfCardView  BackgroundColor="#17669f"  VerticalOptions="FillAndExpand" >
                        <cards:SfCardView.GestureRecognizers>
                            <TapGestureRecognizer
                                Tapped="VerViaje"/>
                        </cards:SfCardView.GestureRecognizers>
                        <Grid  VerticalOptions="FillAndExpand" >
                            <StackLayout Orientation="Horizontal" >
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="27"
                                       MaxLines="1"
                                       HorizontalOptions="CenterAndExpand"
                                       Text="Viajes Divertidos"
                                       TextColor="#e0eeeb"
                                        />
                                <Image
                                   Source="{Binding Url}"
                                    HeightRequest="90" WidthRequest="90"
                                   
                                     />
                            </StackLayout>
                            <StackLayout HorizontalOptions="Start" Padding="25,40,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="24"
                                       HorizontalOptions="CenterAndExpand"
                                       Text="Viaja a:"
                                       TextColor="#e0eeeb"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="CenterAndExpand" Padding="25,60,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="30"
                                       HorizontalOptions="Center"
                                       Text="{Binding Destino}"
                                       TextColor="#50d6a3"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="StartAndExpand" Padding="25,110,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Start"
                                       Text="Fecha Salida:"
                                       TextColor="#e0eeeb"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="CenterAndExpand" Padding="85,110,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Center"
                                       Text="{Binding FechaSalida}"
                                       TextColor="#e0eeeb"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="StartAndExpand" Padding="25,130,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Start"
                                       Text="Fecha Regreso:"
                                       TextColor="#e0eeeb"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="CenterAndExpand" Padding="110,130,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Center"
                                       Text="{Binding FechaVuelta}"
                                       TextColor="#e0eeeb"
                                        />
                            </StackLayout>
                            <StackLayout HorizontalOptions="StartAndExpand" Padding="25,150,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Start"
                                       Text="Disponibilidad:"
                                       TextColor="#57e7a6"
                                        />
                            </StackLayout>

                            <StackLayout HorizontalOptions="CenterAndExpand" Padding="40,150,100,20">
                                <Label 
                                       FontAttributes="Italic"
                                       FontSize="15"
                                       HorizontalOptions="Start"
                                       Text="{Binding Disponibilidad}"
                                       TextColor="#57e7a6"
                                        />
                            </StackLayout>
                        </Grid>

                    </cards:SfCardView>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>

Result

【问题讨论】:

    标签: listview xamarin xamarin.forms xamarin.android


    【解决方案1】:

    您似乎正在使用Viajes 的数组。

    您应该使用ObservableCollectionObservableCollection 将允许 ListView 组件在添加更多项目时自动更新 UI。

    此外,您似乎在此处循环的每一遍都覆盖了您的绑定数组Items

    foreach (Viaje consultas in consulta)
    {
        Items = new Viaje[]
        {
            new Viaje(){Destino = consultas.Destino, Url= consultas.Url, FechaSalida= consultas.FechaSalida, FechaVuelta= consultas.FechaVuelta, Disponibilidad= consultas.Disponibilidad},
    
        };
    }
    

    考虑将 Items 声明移到 for 循环之外:

    Items = new ObservableCollection<Viaje>();
    foreach (Viaje consultas in consulta)
    {
        Items.Add(consultas);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      相关资源
      最近更新 更多