Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单中的可扩展ListView_C#_Listview_Xamarin_Xamarin.forms - Fatal编程技术网

C# Xamarin表单中的可扩展ListView

C# Xamarin表单中的可扩展ListView,c#,listview,xamarin,xamarin.forms,C#,Listview,Xamarin,Xamarin.forms,我有以下代码使用Xamarin表单显示ListView: App.cs public App () { MainPage = GetMainPage(); } public static Page GetMainPage() { return new NavigationPage(new DrilldownListViewByItem()); } DrilldownListViewByItem: public class DrilldownListViewByItem : C

我有以下代码使用Xamarin表单显示ListView:

App.cs

public App ()
{
    MainPage = GetMainPage();
}

public static Page GetMainPage()
{
    return new NavigationPage(new DrilldownListViewByItem());
}
DrilldownListViewByItem:

public class DrilldownListViewByItem : ContentPage
{
    public DrilldownListViewByItem()
    {
        Title = "Drilldown List Using ListView";
        var listView = new ListView();
        listView.ItemsSource = new ListItem[] {
            new ListItem {Title = "First", Description="1st item"},
            new ListItem {Title = "Second", Description="2nd item"},
            new ListItem {Title = "Third", Description="3rd item"}
            };
        listView.ItemTemplate = new DataTemplate(typeof(TextCell));
        listView.ItemTemplate.SetBinding(TextCell.TextProperty, "Title");

        listView.ItemTapped += async (sender, args) =>
        {
            var item = args.Item as ListItem;
            //if (item == null) return;
            //await Navigation.PushAsync(new DetailPage(item));
            //listView.SelectedItem = null;
        };
        Content = listView;
    }
}
ListItem具有以下属性:

public string Title { get; set; }
public string Description { get; set; }

我想做的是,当我在其中一个主项上单击tab键时,显示子项。这些子项应该隐藏在beggining,但它们应该在那里,我不想每次在一个项上添加标签时都加载它们。有什么想法吗?谢谢

尝试根据列表项的单击事件更改要显示和消失的项的可见性

在iOS上,您可能还必须更改单元格高度(使用HeightRequest),因为它可能不会自行更改。我猜android会很好地工作


希望这有帮助

我不想指定固定高度。如何自动获取所需的高度?您是否尝试将HasRows设置为true?它是ListView上的一个属性。这可能会有所帮助,但它可能不会自动执行此操作,您必须强制执行此操作。至少上次我试的时候是这样的。是的,我已经试过了。ViewCell的大小在WinPhone和iPhone上无法刷新。对于WinPhone,当我将设备旋转到横向,然后再旋转回纵向时,ViewCell将刷新。对于iPhone,当ViewCell从屏幕上滚出,然后再带回来时,ViewCell会被刷新。然后据我所知,您必须使用HeightRequest来根据新内容正确更新大小。