Chcę zrobić widok z listą obiektów definiowanych w XAMLu. Jednak po zdefiniowaniu kontrolek poszczególne wiersze zachodziły na siebie (rozmiar widoku wiersza jest większy niż rozmiar wiersza). Okazało się, że są na to dwie metody: Albo empirycznie ustalić rozmiar wiersza i ustawić właściwość RowHeight, albo ustawić (w ListView) właściwość HasUnevenRows na "True". To drugie rozwiązanie jest zasobożerne i pan Petzold w swojej książce je odradza. Mimo wszystko ja właśnie je wybrałem bo wydaje mi się bardziej eleganckie.
<ListView x:Name="ExpenseList"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ContentView>
<StackLayout VerticalOptions="StartAndExpand">
<StackLayout Orientation="Horizontal">
<Label>Amount</Label>
<Label Text="{Binding Amount}" HorizontalOptions="FillAndExpand" />
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Description</Label>
<Label Text="{Binding Description}" />
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Transaction type</Label>
<Label Text="{Binding TypeOfExpense}" />
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Date</Label>
<Label Text="{Binding Date}" HorizontalOptions="FillAndExpand"/>
</StackLayout>
</StackLayout>
</ContentView>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>