繁体   English   中英

具有Xamarin.Forms的标头(LongListSelector)的ListView

[英]ListView with headers (LongListSelector) for Xamarin.Forms

我正在寻找Windows Phone上称为LongListSelector的视图。 这是带有组标题的列表视图。 轻按组标题仅显示组列表。 在组列表上点击一个组将隐藏组列表,并将视图滚动到选定的组。 这是对长列表进行分组的一种非常有用的方法,可以在组之间轻松导航。 如果有其他选择适合同一目的,那也很好。

在此处输入图片说明

在此处输入图片说明

您可以轻松做到这一点:)

您需要做的第一件事是确保您的数据源是集合的集合。 如果您要最大程度地提高绑定质量,我建议您使用ObservableCollection>。 然后我们可以如下构建listView:

var listView = new ListView ();
listView.SetBinding (ListView.ItemsSourceProperty, "Data");
listView.ItemTemplate = new DataTemplate (typeof (MyCell));
listView.GroupHeaderTemplate = new DataTemplate (typeof (MyHeaderCell));
listView.IsGroupingEnabled = true;
listView.GroupShortNameBinding = new Binding ("Title");

按顺序,我们首先绑定数据,我假设这里的BindingContext将从页面继承。 我们的数据应该是已经提到的集合的集合。

然后我们像往常一样绑定到ItemTemplate中,创建一个GroupHeaderTemplate,这将是正常滚动期间列表中显示的模板。 接下来,我们启用分组功能,以告知列表将数据用作分组集合而不是固定列表。

最后,完成所有操作后,我们为GroupShortName提供了绑定。 将对每个组的集合运行此绑定,以获取一个字符串(或将调用ToString的对象)以生成您在屏幕快照中显示的跳转列表。

出于性能方面的考虑,您可能要确保在设置完所有其他设置之前,不要设置ItemsSource,以避免ListView尝试以部分配置的状态实现单元。 这实际上不会导致错误,而只是强制ListView做更多的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM