即使将 IsVisible 设置为 true,Xamarin.Forms ListView 也不显示项目

问题描述 投票:0回答:1

描述: 我正在开发 Xamarin.Forms 应用程序,目前遇到的问题是即使将 IsVisible 设置为 true 后,ListView 也不会显示项目。我已遵循 Xamarin 文档和其他示例,但我仍然无法识别问题。

XAML(MainPage.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="BeautyFly.MainPage"
             BackgroundColor="#404040">

    <StackLayout>
        <!-- First ScrollView with Button -->
        <StackLayout>
            <ScrollView Orientation="Horizontal">
                <StackLayout Orientation="Horizontal">
                    <Button Text="File" BackgroundColor="Transparent" TextColor="White" Clicked="Button_Clicked" TextTransform="None"/>
                    <Button Text="Settings" BackgroundColor="Transparent" TextColor="White" Clicked="Button_Clicked" TextTransform="None"/>
                    <Button Text="Filters" BackgroundColor="Transparent" TextColor="White" Clicked="Button_Clicked" TextTransform="None"/>
                </StackLayout>
            </ScrollView>
            <ScrollView Orientation="Horizontal" Padding="10,0">
                <StackLayout Orientation="Horizontal">
                    <ImageButton Source="a" HeightRequest="60" WidthRequest="60" Aspect="AspectFit" BackgroundColor="Transparent" Clicked="ImageButton_Clicked"/>
                </StackLayout>
            </ScrollView>
            <!-- Add more elements as needed -->
        </StackLayout>
        <ListView x:Name="menuListView" IsVisible="false">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Horizontal" Padding="10,5">
                            <Image Source="icon" HeightRequest="30" WidthRequest="30" />
                            <Label Text="Hi hello world" VerticalOptions="CenterAndExpand" Margin="10,0,0,0" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>

代码隐藏(MainPage.xaml.cs):

using System;
using Xamarin.Forms;

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

        private void Button_Clicked(object sender, EventArgs e)
        {
            menuListView.IsVisible = true;
        }

        private void menuListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            //menuListView.IsVisible = false;
            switch (e.SelectedItem)
            {
                case "open":
                    break;
            }
            //menuListView.SelectedItem = null;
        }

        private void ImageButton_Clicked(object sender, EventArgs e)
        {
            DisplayAlert("helL", "o", "h");
        }
    }
}

问题:

我有一个名为 myListView 的 ListView。 我正在初始化 ObservableCollection 并将其设置为 ItemsSource。 尽管将 IsVisible 设置为 true,但项目并未显示。 我检查过的事情:

验证 ObservableCollection 中的数据是否正确填充。 检查是否有任何布局问题或冲突的属性。 问题: 谁能帮助我确定为什么即使我将 IsVisible 设置为 true,ListView 中的项目也不会显示?有什么我可能遗漏的东西或者我应该注意的常见陷阱吗?

预先感谢您的协助!

c# android listview xamarin xamarin.forms
1个回答
0
投票

您的 XAML 和代码隐藏看起来结构良好,并且您已经检查了常见问题。一个潜在的疏忽可能是缺少 ListView 的 ItemSelected 事件的事件处理程序。计算机工程确保您订阅此事件并正确处理选择。

© www.soinside.com 2019 - 2024. All rights reserved.