BindableLayout: Ersatz für die RepeaterView
Im vergangenen Jahr habe ich in mehreren Artikeln gezeigt, wie man sich eine RepeaterView schreiben kann. Das Ziel war es ein Control zu haben, welches eine ItemsSource
entgegen nimmt und diese dann rendert. Dies ist zum Beispiel dann sinnvoll, wenn man auf die zusätzlichen Features einer ListView verzichten kann. Mit Xamarin.Forms 3.5 ist nun ein neues Feature verfügbar, welches auf den Namen BindableLayout hört. Damit wird die RepeaterView überflüssig, da man nun einen beliebigen Container, wie zum Beispiel dem StackLayout
direkt eine ItemsSource
und ein ItemTemplate
übergeben kann. Wie das ganze im Einzelnen funktioniert, möchte ich euch in diesem Beitrag zeigen.
Xamarin.Forms Controls: RepeaterView mit DataTemplateSelector
Ich habe ja bereits gezeigt, wie wir ein neues Xamarin.Forms Control, nämlich die RepeaterView, erstellen und diese haben wir bereits erweitert, dass jede zweite Zeile eine andere Hintergrundfarbe bekommt. In diesem Beitrag möchte ich euch jetzt zeigen, wie ihr die RepeaterView
so ergänzen könnt, dass statt eines ItemTemplates
auch ein DataTemplateSelector
angegeben kann, welcher auf Grund verschiedener Regeln das passende Template auswählt und darstellt.
Xamarin.Forms Controls: RepeaterView mit alternativen Zeilenfarbe
Ich habe bereits gezeigt, wie man sich ganz einfach eine RepeaterView erstellen kann. Nun möchte ich die bestehende Implementierung so erweitern, dass jede zweite Zeile eine andere Hintergrundfarbe hat. Dies hat den großen Vorteil, dass sich die Lesbarkeit der Daten deutlich erhöht und man einen größeren Kontrast zwischen den einzelnen Einträgen herstellen.
Xamarin.Forms Controls: RepeaterView
Manchmal kommt man in die Verlegenheit, dass man gerne zwei ListViews
innerhalb einer ScrollView
verwenden möchte, was jedoch gar keine gute Idee ist, denn so hat man mehrere verschachtelte ScrollViews
auf einer Page, was zu unerwünschtem Verhalten führen kann. In diesem Fall kann es hilfreich sein ein einfaches Control zur Verfügung zu haben, welches eine Liste von Objekten entgegen nimmt und diese entsprechend eines Templates anzeigt. Bei Bedarf kann man dann dieses selbst in eine ScrollView
packen und erreicht so das gewünschte Ergebnis.