Xamarin格式自定义单元格只显示第一行
问题描述:
我是Xamarin格式的新手,我想创建适用于驱动程序的应用程序。我正尝试在里面创建带有多个stacklayouts的自定义单元格。但在列表视图中只显示我的自定义单元格的第一行。这里是我的自定义单元代码:Xamarin格式自定义单元格只显示第一行
<ListView x:Name="ListViewRides">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical" Margin="15">
<StackLayout Orientation="Horizontal">
<Label x:Name="LabelLocationFrom" Text="{Binding PlaceFrom}" Margin="0, 0, 5,0"/>
<Label Text="->"/>
<Label x:Name="LabelLocationTo" Text="{Binding PlaceTo}" Margin="5, 0, 0, 0"/>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label x:Name="LabelTimeFrom" Text="{Binding TimeFrom}" Margin="0, 0, 5,0"/>
<Label Text="->"/>
<Label x:Name="LabelTimeTo" Text="{Binding TimeTo}" Margin="5, 0, 0, 0"/>
</StackLayout>
<Label x:Name="LabelCustomer" Text="{Binding Customer}"></Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
在那里我做了错误,我不明白,可能有人请帮助我的结果?对于完整的概述,我还添加了ViewModel代码:
public class RidesViewModel:Bindable
{
public string PlaceFrom { get; set; }
public string PlaceTo { get; set; }
public DateTime TimeFrom { get; set; }
public DateTime TimeTo { get; set; }
public string Load { get; set; }
public int Weight { get; set; }
public string Note { get; set; }
public string ContactPersonFrom { get; set; }
public string ContactPersonTo { get; set; }
public string Customer { get; set; }
public string Trailer { get; set; }
public bool IsReadyToShow { get; set; }
public string RideState { get; set; }
}
谢谢你的建议。我想这是我现在看不到的明显的事情。
答
您无法看到它可能是由于它不在视野中,但它在那里。
将ListView
的RowHeight
属性设置为更高的值以验证此操作。
如果我没有弄错,RowHeight
应该能够计算出您设置为-1并将HasUnevenRows
设置为true。但是,这并不总是符合我的经验。要做到这一点,您可能需要使用一些自定义渲染器来完成它。
答
必须在您的ListView(......或任何视图)设置为HasUnevenRows = True
和设置VerticalOptions要么“CenterAndExpand”或“FillAndExpand”或别的东西适合。
它可能是看不见的。尝试将'ListView'上的'RowHeight'设置为更大的数字,然后查看是否有内容。 –
你是对的,有没有什么模式来确定行高? –