Gibt es eine Möglichkeit, mehrere Wertwandler in XAML zu verketten?
Habe ich eine situation, in der ich zeigen muss einen integer-Wert, gebunden zu einem Grundstück, auf meine Daten Kontext, nachdem er es durch zwei separate Konvertierungen:
- Reverse-Wert innerhalb eines Bereichs (z.B. der Bereich ist 1 bis 100; Wert in datacontext wird 90; der Benutzer sieht den Wert 10)
- wandelt die Zahl in einen string
Ich begreife, dass ich tun konnte, die beiden Schritte durch die Erstellung meiner eigenen Konverter (implementiert IValueConverter). Aber ich habe schon einen separaten Wert-Konverter, der nicht nur der erste Schritt und der zweite Schritt ist abgedeckt durch Int32Converter.
Gibt es eine Möglichkeit, kann ich die Verkettung dieser beiden bestehenden Klassen in XAMLohne dass Sie eine weitere Klasse, die Aggregate?
Wenn ich brauche, um zu klären, lass es mich wissen. 🙂
Dank.
InformationsquelleAutor der Frage Mal Ross | 2010-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verwendet diese Methode von Gareth Evans in meinem Silverlight-Projekt.
Hier ist meine Umsetzung:
Die dann verwendet werden können in XAML wie diese:
InformationsquelleAutor der Antwort Town
Gefunden, genau was ich gesucht habe, mit freundlicher Genehmigung von Josh Smith: Rohrleitungs-Wert-Wandler (archive.org link).
Er definiert eine
ValueConverterGroup
Klasse, deren Verwendung in XAML ist genau so, wie ich hoffte. Hier ist ein Beispiel:Tolle Sachen. Danke, Josh. 🙂
InformationsquelleAutor der Antwort Mal Ross
Ja, es gibt Möglichkeiten, Kette-Wandler, aber es muss nicht hübsch Aussehen, und Sie brauchen es nicht hier. Wenn Sie jemals brauchen, Fragen Sie sich, ist das wirklich der Weg zu gehen? Einfach immer besser funktioniert, auch wenn Sie schreiben Sie Ihren eigenen Konverter.
In Ihrem Fall, alles, was Sie tun müssen, ist, format a konvertiert den Wert in einen string.
StringFormat
- Eigenschaft auf eineBinding
ist dein Freund hier.InformationsquelleAutor der Antwort wpfwannabe
Stadt Umsetzung von Gareth Evans der Silverlight-Projekt ist toll, aber es unterstützt nicht die verschiedenen Konverter-Parameter.
Ich es geändert so kann man sich die Parameter, durch Komma getrennt (es sei denn, Sie entkommen Ihnen natürlich).
Konverter:
Hinweis: ConvertBack ist hier nicht implementiert, siehe meinen Gist für eine aktualisierte version.
Umsetzung:
InformationsquelleAutor der Antwort Trevi Awater