Legen Sie die LinearLayout-Hintergrundfarbe über den booleschen Wert fest

8

Ich versuche, einen MvxValueConverter zu verwenden, um die Hintergrundfarbe eines LinearLayout basierend auf einem booleschen Wert festzulegen. Der Konverter sieht so aus:

%Vor%

In meinem AXML-Layout habe ich folgenden Code:

%Vor%

Ich erhalte den folgenden Fehler:

%Vor%

Die vollständige Fehlerverfolgung ist wie folgt:

%Vor%

Also, ich bin ehrlich gesagt nicht sicher, wohin ich von hier aus gehen soll. Was versuche ich? Benutze ich den richtigen MvvmCross-Konverter? Alle Hinweise würden sehr geschätzt werden.

Aktualisierung:

Ändern des Konverters zu:

%Vor%

... hat mein Problem gelöst. Ich hatte auch TextColor MyBooleanValue, Converter=TextColor auf meinem LinearLayout , die ähnlich wie BackgroundColorValueConverter funktionierte, und ich bekam den gleichen Fehler über das Erstellen von Zielbindungen fehlgeschlagen.

Sobald ich meine AXML geändert habe, um zu lesen:

%Vor%

... alles hat wie geplant funktioniert. Für jeden, der zufällig in Zukunft darüber stolpert: Versuch nicht, TextColor an ein LinearLayout zu binden, weil es nicht so funktioniert!

    
Walter W Kennedy IV 05.03.2014, 18:53
quelle

3 Antworten

3

Es gibt ein funktionierendes Beispiel von BackgroundColor binding in Ссылка

Dies verwendet die BackgroundColor-Bindung von Ссылка

Funktioniert dieses Beispiel für Sie?

Wenn ja, können Sie den Unterschied zwischen diesem Muster und dem Muster, das Sie verwenden, erkennen? Ist es ein Problem mit dem Color Plugin? (Ist das in Ihr UI-Projekt geladen?) Ist es ein Problem mit LinearLayout im Vergleich zu TextView? Gibt es noch weitere Fehler, die Sie angeben können? Die Zeile, die Sie angegeben haben, wird auf Ссылка erstellt - aber normalerweise gibt es noch eine andere Spur vor dieser Zeile.

Wenn nein, dann ist das beunruhigend, weil es bedeutet, dass es ein allgemeiner Fehler ist ...

Update: (nachdem weitere Informationen bereitgestellt wurden)

Ich denke, das Problem ist in Ihrem ValueConverter - um mit Android zu arbeiten, muss Ihr ValueConverter mit einem nativen Typ enden - nicht mit dem plattformunabhängigen MvxColor . Der Fehler, den Sie sehen, ist eine ungültige Cast-Ausnahme - weil die Bindung versucht, Ihre MvxColor auf eine Android.Graphics.Color in Ссылка

Um in Native zu konvertieren, können Sie die Basisklasse MvxColorValueConverter verwenden - siehe Ссылка

Ein Beispiel dafür ist Ссылка

%Vor%

Es gibt einige Dokumente zu Farbkonvertern in Ссылка

    
Stuart 05.03.2014, 20:16
quelle
0

Sie geben einen booleschen Wert für Ihre Methode zurück, wo ein MvxColor-Objekt erwartet wird.

%Vor%     
javisrk 05.03.2014 19:13
quelle
0

vor dem gleichen Fehler über "Fehler beim Erstellen Zielbindung ...", bewegte einfach den Konverter aus dem Ordner unter Core-PCL-Projekt in einen neuen Ordner unter Droid-Projekt hat den Trick für mich:)

    
Alvida 23.10.2016 11:30
quelle