Welcher ist leistungsstärker zu verwenden? Begrenzung des Konverters im Vergleich zu Trigger und umgekehrt. Soll ich den Konverter verwenden, weil dies zu einer Klassenexplosion führen kann?WPF-Trigger VS Converter
Antwort
Für ähnliche Ausgabearten sind Triggers
bessere Leistungsmerkmale als Converter
. Obwohl conveters
ratsam sind, wenn Sie möchten, dass Ihre Entwicklung TDD ist, da Sie Komponententests für Ihren Konvertercode schreiben können. Converters
kann verwendet werden, um komplexe Konvertierungen zu schreiben, die manchmal nicht mit Triggern möglich sind. Bei komplexen Umsetzungen kann Converters
den Code reduzieren, anstatt eine Serie von Triggers
zu schreiben.
Wenn Sie in TDD-Entwicklung sind, wird es besser sein, mit Konvertern zu gehen.
Wenn keine komplexe Geschäftslogik oder benutzerdefinierte Logik angewendet werden soll, gehen Sie zu Trigger. Eine weitere Sache an den Konvertern ist, dass es einen Leistungseinbruch gibt, der mit der Verwendung von Konvertern gemäß Laurent Bugnion (Schöpfer von MVVM Light) verbunden ist.
Sie können mehr Einblick in die Leistung von diesem Beitrag erhalten. DataTrigger vs databinding with converter performance wise
Sie können mehr Details darüber, wann Sie Trigger verwenden und wann Konverter von diesem Beitrag auch verwenden. Should I use WPF converter or trigger?
Die Entscheidung kann basierend auf dem Entwicklungsansatz getroffen werden, dem Sie folgen oder folgen werden. Ich bevorzuge es, das Ansichtsmodell die meiste Zeit in einem "WPF Viewmodel" -Konzept zu verpacken.
In den meisten Szenarien können Trigger die gleiche Arbeit wie jeder Konverter ausführen, aber Konverter können benutzerdefinierte/Geschäftslogik haben.
Eine Einschränkung von Triggern besteht darin, dass Setter in Ihren DataTriggern nur die Eigenschaften Ihrer UI-Elemente ändern können. Daher können Sie Ihre ViewModels-Eigenschaft nicht mit Triggern aktualisieren, bei denen Converter gewinnen, denken Sie an die ConvertBack-Methode.
Also kurz gesagt Trigger nur OneWay Operationen durchführen kann, während Converters TwoWay Operationen
es ist * lustig *, wie diese Antwort fast genau ausführen kann, ist die gleiche wie [das andere] (http://stackoverflow.com/a/ 11156189/540776) – superjos
Wow, es ist wieder hier erschienen: http://stackoverflow.com/questions/24607952/wpf-xaml-datatriggers-o-valueconverters-best-practice –