我在Xamarin Forms XAML中有一个ListView,在这个ListView中我想绘制一个带有4个标签和1个Entry的Grid。我的问题是,当我尝试显示ListView时,它的行被叠加,并且不会显示ViewCell的所有内容到DataTemplate中。
我不知道我的错误是什么。
这是我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="iGuideTest.ExhibitionsPage"
Title = "{Binding titleMenu}">
<ContentPage.Content>
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<Label Text="You are in the Exhibitions page" />
<Button Text="Return to LoginPage" Command="{Binding BackCommand}" />
<Label Text="{Binding exhibitionsList.Count}" />
<Button Grid.Row="2" Grid.Column="0" Text="{Binding surname}" Command="{Binding Edit}" />
<ListView x:Name="ListViewCouchbase" ItemsSource="{Binding exhibitionsList}"
>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" TextColor="#05199C" Text="{Binding title}" />
<Label Grid.Row="0" Grid.Column="1" TextColor="#008000" Text="{Binding userId}" />
<Label Grid.Row="1" Grid.Column="1" TextColor="Maroon" Text="{Binding LastUpdated}" />
<Label Grid.Row="1" Grid.Column="0" TextColor="Purple" Text="{Binding surname}" />
<Entry Grid.Row="2" Grid.Column="0" TextColor="Blue" Text="{Binding Id}" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
提前致谢。
答案 0 :(得分:10)
尝试使用HasUnevenRows
属性:
<ListView HasUnevenRows="True">
...
</ListView
&GT;
答案 1 :(得分:0)
是的,我去过那里:)
设置ListView RowHeight =“xx”,其中xx是指示高度的双倍。
答案 2 :(得分:0)
由于您使用Grid
且Auto
中有RowHeight
,因此您最好将HasUnevenRows
属性设置为true。
此外,您的网格本身也具有动态尺寸,您可以将其VerticalOptions
设置为Fill
。