Wie blieb ich mehrere Eigenschaften in einem Android-Layout-Element?
-
12-12-2019 - |
Frage
Ich verwende MVVMCross, um mein ViewModel in ein Android-Ansichtslayout zu erfassen.
Aus dem einfachbindenden Beispiel kann ich sehen, dass er einen Wert auf eine Eigenschaft binden, die ich tue:
generasacodicetagpre.Der Text ist also an die Untertotaleigenschaft des ViewModel gebunden.Aber wie blieb ich an mehr als eine Eigenschaft?In meinem Fall möchte ich eine ViewModel-Eigenschaft, die als HigherLower auf das Textcolor-Attribut des Layoutelements binden.Ich kann keine weitere MVXBIND hinzufügen, und ich kann MVXBIND nicht auf ein Array setzen.
Lösung
Das Format des JSON, das im Binding-Ausdruck verwendet wird, ist ein Wörterbuch des genannten mvxjsonbindingdescription s
generasacodicetagpre.Dies wird mit:
verwendet- Der Name des Wörterbuchs ist das Ziel (Ansicht) Eigentum für die Bindung.
- Die bindende generationstechnische Eigenschaft ist die Eigenschaft für Quelle (DataContext) für die Bindung - wenn generationstechnisch nicht angegeben wird, ist der gesamte DataTontxt selbst die Bindungsquelle.
für Aktivitäts- / Ansichtsebene AXML Der Datactext ist das ViewModel - aber für Subview AXML ist der Datactext normalerweise ein untergeordnetes Objekt des ViewModel - z. Innerhalb einer ListView ist der DataContext möglicherweise ein Element in einer Liste oder ein Observablecollection des ViewModel.
Um mehrere Bindungen anzugeben, die Sie verwenden können, können Sie JSON verwenden:
generasacodicetagpre.Für Ihr bestimmtes Beispiel könnte dies sein:
generasacodicetagpre.wo Ihr ViewModel so ist:
generasacodicetagpre.und Ihr Konverter ist so etwas wie:
generasacodicetagpre.und wo dieser Konverter während des Setups initialisiert wird, z. Sehen Sie, wie die Eigenschaften des Converter -Klasse werden in twittersearch
Eine Probe, die mehrere Bindungen bei der Arbeit zeigt, sind Bestseller - siehe Klick und Text in der Liste der Liste https://github.com/sLodge/mvvmcross/blob/master/sample%20-%20Bestseller/Bestseller/bestellers.droid/ Ressourcen / Layout / listitem_category.axml
Andere Tipps
path ':' Highloweryou muss das tun:
generasacodicetagpre.Notieren Sie sich:
generasacodicetagpre.