Abwechselndes ItemTemplate in einer ListView

Manchmal möchte man jedes zweite Element in einer Liste anders darstellen, z.B. durch eine andere Hintergrundfarbe, damit der Nutzer die einzelnen Elemente klarer abgrenzen zu kann. Standardmäßig ist dies nicht so einfach möglich, aber mit der Hilfe eines kleinen Converters ist es letztendlich doch möglich.

Zunächst erstellt ihr eure ListView mit dem zugehörigen ItemTemplate. Bei dem folgenden Code-Ausschnitt handelt es sich um ein Beispiel, wie die Definition im XAML-Code aussehen kann:

Anschließend erstellt ihr eine Klasse mit dem Namen ItemTemplateConverter und dem folgenden Inhalt:

Wie man sieht liefert dieser Converter nun entweder rot oder grün als Farbe zurück. Dieses wollen wir nun in unseren XAML-Code einbauen, so dass die Hintergrundfarbe stets wechselt.

Zu guter letzt muss nun nur noch etwas in dem C#-Code angepasst werden, sofern ein Element zur Liste hinzugefügt wird. Dies ist notwendig, damit die Eigenschaft IndexWithinParentCollection richtig gesetzt ist.

Im Anschluss wechselt sich nun die Hintergrundfarbe für jedes Item ab. Natürlich lässt sich der Converter nun auch anders erstellen, so dass konkrete Styles zurückgegeben werden oder auch Schriftgrößen und noch vieles anderes.

You may also like...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *