Ich habe eine ListBox. Jetzt möchte ich ein DataTemplate so schreiben, dass das erste Einzelteil roten Hintergrund und weißen Hintergrund für andere Einzelteile hat. Ich denke, ich muss einen DataTrigger schreiben, aber ich habe keine Ahnung, wie ich feststellen kann, dass DataTemplate auf das erste Element angewendet wird.Wie Index des aktuellen ListBox-Elements von DataTemplate zu ermitteln?
5
A
Antwort
7
Artikel Kontrollen haben einen Wechsel Zahl, die Sie Stil verwenden gegen
einen Blick here:
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="LightBlue"></Setter>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="LightGreen"></Setter>
</Trigger>
</Style.Triggers>
</Style>
genießen!
Verwandte Themen
- 1. Android: Ermitteln des aktuellen Audiokanals
- 2. NodeJS: Ermitteln des aktuellen Arbeitsverzeichnisses des Benutzers
- 3. Wie bekomme ich den Index des aktuellen ItemsControl Elements?
- 4. Ermitteln der Quellanwendung des aktuellen Passepartout-Inhalts
- 5. Ermitteln des aktuellen Zustands einer Zelle
- 6. Ermitteln der Shell des aktuellen Benutzers
- 7. Automatisches Verwenden eines DataTemplate basierend auf DataType des aktuellen Contents des aktuellen Contols
- 8. Ermitteln Sie die Animationsdauer des aktuellen Animationsblocks
- 9. Index des aktuellen DataRow in einer Datatable
- 10. aktuellen Benutzer ermitteln
- 11. Erstellen eines benutzerdefinierten Hibernate-Benutzertyps: Ermitteln des aktuellen Entitätstabellennamens
- 12. Auswählen von DataTemplate auf Basis des Unterobjekttyps
- 13. Ermitteln des aktuellen Controllers, der für Kohana verwendet wird
- 14. Ermitteln des aktuellen Aufruf-Stacks (für diagnostische Zwecke)
- 15. Android: Ermitteln des aktuellen Kontexts zum Anzeigen einer Warnung
- 16. Ermitteln des aktuell ausgeführten Testfalls von Nunit
- 17. Ermitteln des Index eines Elements in einer Liste scala
- 18. Wie zu ermitteln ist der Kunde von außerhalb des Landes?
- 19. Erhalten Index der aktuellen TabPage von Pagecontrol
- 20. Index des aktuellen Elements in Powershell loop abgerufen?
- 21. Wie kann ich den Pfad des Ordners "Anwendungsdaten" des aktuellen Benutzers ermitteln?
- 22. Ermitteln des Klassennamens von SVGAnimatedString
- 23. Erhalten Index des aktuellen Elements in C++ bereichsbasierte for-Schleife
- 24. Wie den Index des Elements von Klasse zu erhalten, die
- 25. Aktuellen Monat Index in Kompilierzeit
- 26. Ermitteln der Eigenschaften der aktuellen Netzwerkverbindung
- 27. Aktuellen Tab-Index abrufen vb.net
- 28. Den Pfad der aktuellen Baugruppe ermitteln
- 29. Ermitteln des Anwendungsneufokusereignisses
- 30. Ermitteln des Adressbereichs des Datensegments
Es ist eine großartige Funktion, vielen Dank für Informationen. Aber ich brauche ** nur ** das erste Element, um roten Hintergrund zu haben, nicht jedes Element wo (itemIndex% AlternationCount) == 0. Natürlich kann ich AlternationCount an ItemsSource.Count binden, aber gibt es keinen besseren Weg zu tun Dies? – levanovd
was Sie umreißen klingt akzeptabel, es ist alles in Xaml. es macht den Job fertig, und Sie können zu besseren Dingen übergehen. jemand anders könnte eine elegantere Lösung finden. Sie könnten eine Multibinding mit der ersten Bindungsbindung an das aktuelle Element und die zweite eine Vorgängerbindung, Bindung an die Itemsource der Listbox tun. Dann könnten Sie in Ihrem Konverter überprüfen, wie der Index des Artikels war. aber deine Lösung oben ist alles in XAML. Ich bevorzuge Lesbarkeit. es ist in Sichtweite in der XAML, nicht in einem Konverter gesperrt –
Keine Notwendigkeit, AlternationCount an ItemsSource.Count binden: Setzen Sie es einfach auf Int32.MaxValue in der XAML. (Ich bevorzuge AlternationCount = "2147483647" gegenüber "{x: Static sys: Int32.Maxvalue}", da es schneller ist und 2^31-1 für die meisten Programmierer erkennbar ist). –