我想创建一个可展开的ListView
,其中包含两个ViewCell
的自定义StackLayout
。第一个是标题,第二个布局是第一个布局的子项,并显示其他详细信息。我们的想法是默认隐藏细节布局,并且在点击其ViewCell
容器时切换其可见性。
我不确定如何在Xamarin.Forms环境中正确实现这一点,并且没有找到任何真正有用的资源。我可以想象一个解决方案,它涉及创建ViewCell
的自定义子类;或者我将通过ViewModel向ListView.itemsSource
的每个项目添加一个可见性属性
在这种情况下,什么是最佳实践,以及如何在Xamarin.Forms中实现这一目标?
以下是我打算创建的XAML大纲:
<ListView HasUnevenRows="True"
ItemTapped="listView_OnItemTapped"
x:Name="listView">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical"
Padding="10,10,10,10">
<!-- Header Stuff -->
<StackLayout Orientation="Vertical"
x:Name="_slDetails">
<!-- Details Stuff -->
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
答案 0 :(得分:1)
你要找的是GroupHeaderTemplate, 例如:
<ListView.GroupHeaderTemplate>
<DataTemplate>
<TextCell Text="{Binding Title}"
Detail="{Binding ShortName}"
TextColor="#f35e20"
DetailColor="#503026" />
</DataTemplate>
</ListView.GroupHeaderTemplate>
请查看以下链接
有关如何使用GroupHeaderTemplate的信息:customizing-list-appearance。
与问题的点击部分切换相关:xamarin-forms-expandable-listview。