poniedziałek, 11 kwietnia 2016

Xamarin ListView z ViewCell

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>

Brak komentarzy:

Prześlij komentarz