WPF-DataBinding mit einfachen arithmetischen operation?
Möchte ich hinzufügen, dass ein konstanter Wert auf eine eingehende gebunden integer. In der Tat habe ich mehrere Orte, wo ich binden wollen, zu der gleichen Quelle, Wert, aber hinzufügen, verschiedene Konstanten. Also die ideale Lösung wäre so etwas wie dieses...
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=5}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=8}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=24}"/>
(HINWEIS: Dies ist ein Beispiel, um zu zeigen, auf die Idee, meine eigentliche Bindung Szenario ist nicht auf die canvas-Eigenschaft einer TextBox. Aber das zeigt, die Idee klarer)
Im moment die einzige Lösung, die ich denken kann, ist, setzen Sie viele verschiedene Quell-Eigenschaften, von denen jede gibt es eine unterschiedliche Konstante, auf den gleichen internen Wert. Also ich könnte so etwas tun...
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus5}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus8}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus24}"/>
Aber diese ist ziemlich düster, weil ich in Zukunft brauchen könnte, halten Sie das hinzufügen neuen Eigenschaften für neue Konstanten. Auch, wenn ich brauche, um den Wert zu ändern Hinzugefügt, ich muss gehen, ein alter Quelle-Objekt, das ist ziemlich naff.
Muss es eine weitere Allgemeine Möglichkeit, als dieses? Jede WPF-Experten irgendwelche Ideen?
InformationsquelleAutor Phil Wright | 2008-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie können dies tun, mit einem Wert Konverter. Hier ist ein Blogeintrag, dass Adressen die übergabe eines Parameters an den Wert converter in xaml. Und dieser blog gibt einige details der Implementierung ein Wert Konverter.
InformationsquelleAutor Steve Steiner
Verwende ich eine
MathConverter
angelegt mit denen ich zu tun alle einfach arithmatic operations mit. Der code für den Konverter ist hier und es kann z.B. so verwendet werden:Können Sie sogar mit mehr erweiterte arithmatic operations wie
Eine negative Zahl ist nur
0 - @VALUE
, so dass die Nutzer könnten leicht geben Sie es als. Oder als eine bessere Lösung, einfach mal für ein-
symbol, wenn wir erwarten, dass ein numerisches token, und wenn es gefunden es richtig zu analysieren. Ich glaube, ich kann tatsächlich getan haben, in der Kopie die converter, die ich halten in meinem WPF-Bibliothek...0 - @WERT wird nicht funktionieren. Um genauer zu sein, ich habe einen 0-basierten Liste und wollen zeigen, text "element x von y", also ich bind index (x) "@VALUE + 1". Jedoch die leere Liste, wird -1 zurück als index, so wird -1+1, mathconverter splits von Operanden, als bei minus zweite Zahl nicht gefunden, JMD wie die. Also etwas mehr Analyse sollte durchgeführt werden. Aber im Grunde ist das Ziel meiner Bemerkung war nur, darauf hinzuweisen, ein problem, wer kann diesen code verwenden in Zukunft. Es ist eine nützliche Konverter sowieso.
<3 ich würde upvote zweimal, wenn ich könnte
InformationsquelleAutor Rachel
Mit einem Wert Konverter ist eine gute Lösung für das problem, da es Ihnen erlaubt, ändern Sie die Quelle Wert, wie es gebunden wird, um die UI.
Habe ich die folgenden an einigen stellen.
Beispiel
InformationsquelleAutor Ian Oakes
Habe ich noch nie verwendet, WPF, aber ich habe eine mögliche Lösung.
Können Sie Ihre verbindliche Pfad-Karte zu einer Karte? Wenn dem so ist, sollte dann in der Lage sein, um ein argument (der Schlüssel). Brauchen Sie zum erstellen einer Klasse implementiert das Map-interface, sondern wirklich nur die Renditen der Basis-Wert, den Sie initialisiert die "Karte" mit dem Schlüssel angehängt.
Ohne eine gewisse Fähigkeit zum bestehen der Nummer aus dem tag, ich sehe nicht, wie Sie gehen, um es zu erhalten, zurück, andere deltas vom ursprünglichen Wert.
InformationsquelleAutor billjamesdev