如何在Xamarin.Forms中

时间:2017-05-29 08:22:40

标签: listview xamarin xamarin.forms

我想创建一个可展开的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>

1 个答案:

答案 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