gpt4 book ai didi

xamarin.forms - 如何在 Xamarin Forms 中展开和折叠 ListView

转载 作者:行者123 更新时间:2023-12-04 07:37:20 25 4
gpt4 key购买 nike

我是 Xamarin Forms 的新手,我知道有很多有用的控件。我正在寻找一个可以扩展以在网格中显示数据的控件,如下例所示。

expand and collapse example

更新

模型:

public class Phone
{
public string mobile { get; set; }
public string home { get; set; }
public string office { get; set; }
}

public class Contact
{
public string id { get; set; }
public string name { get; set; }
public string email { get; set; }
public string address { get; set; }
public string gender { get; set; }
public Phone phone { get; set; }
}

public class ContactList
{
public List<Contact> contacts { get; set; }
}

XAML:
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Margin="10" Text="Display Json Data" FontSize="25" />
<ListView x:Name="listviewConacts" Grid.Row="1" HorizontalOptions="FillAndExpand" HasUnevenRows="True" ItemSelected="listviewContacts_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid HorizontalOptions="FillAndExpand" Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Text="{Binding name}" HorizontalOptions="StartAndExpand" Grid.Row="0" TextColor="Blue" FontAttributes="Bold"/>
<Label Text="{Binding email}" HorizontalOptions="StartAndExpand" Grid.Row="1" TextColor="Orange" FontAttributes="Bold"/>
<Label Text="{Binding phone.mobile}" HorizontalOptions="StartAndExpand" Grid.Row="2" TextColor="Gray" FontAttributes="Bold"/>
<BoxView HeightRequest="2" Margin="0,10,10,0" BackgroundColor="Gray" Grid.Row="3" HorizontalOptions="FillAndExpand" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
<ActivityIndicator x:Name="ProgressLoader" IsRunning="True"/>
</Grid>

基于上面的模型和XAML,如何实现可伸缩 ListView比如上图中的那个?

最佳答案

在 ListView 中显示数据只需在 ViewCell 中取一个 GridLayout。在 GridLayout 中取两行高度为 auto 的行。在第一行显示标题和按钮,在第二行添加与项目相关的数据并将一个 isvisible 属性绑定(bind)到第二行。单击该向上箭头时,只需反转 isvisible 属性的值。

也就是说,如果 isvisible 的属性为 true,那么它将显示第 2 行,如果 isvisible 属性为 false,则只会显示该标题。

<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding HeaderText}" Grid.Row="0"
Grid.Column="0" />
<Button Text="Show" Grid.Row="0" Grid.Column="1"
Clicked="LableVisibleButton"/>
<Label
Grid.Row="1" Grid.Grid.ColumnSpan="2"
FormattedText="{Binding FormattedText}" IsVisible="
{Binding LabelVisible}"/>
</ViewCell>

关于xamarin.forms - 如何在 Xamarin Forms 中展开和折叠 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com