/ / WPF wyzwala VS Converter - wpf, c # -4,0, wyzwalacze, konwerter

WPF wyzwala VS Converter - wpf, c # -4,0, wyzwalacze, konwerter

Które lepiej użyć wydajności? Ograniczenie konwertera w stosunku do wyzwalacza i wersetu. Czy mam ograniczyć używanie konwertera, ponieważ może to spowodować eksplozję klasy?

Odpowiedzi:

5 dla odpowiedzi № 1

Jeśli pracujesz nad rozwojem TDD, będzie to lepszy wybór dla konwerterów.

Jeśli nie ma złożonej logiki biznesowej lub niestandardowejlogika, którą należy zastosować, a następnie przejdź do wyzwalaczy. Jeszcze jedna rzecz o konwerterach jest taka, że ​​istnieje uderzenie wydajności związane z używaniem konwerterów według Laurenta Bugniona (twórcy MVVM Light).

Możesz zobaczyć więcej informacji na temat skuteczności działania tego posta. DataTrigger vs databinding z wydajnością konwertera

Możesz uzyskać więcej informacji o tym, kiedy używać wyzwalacza i kiedy używać konwerterów z tego wpisu. Czy powinienem używać konwertera WPF lub wyzwalacza?

Decyzja może zostać podjęta w oparciu o podejście do rozwoju, którego przestrzegasz lub którego będziesz przestrzegać. Wolę owijać twój model widoku w koncepcję "WPF Viewmodel" przez większość czasu.


0 dla odpowiedzi nr 2

Dla podobnego rodzaju produkcji, Triggers są lepszą wydajnością w porównaniu do Converter. Mimo że, conveters są wskazane tam, gdzie chcesz, abyś rozwijał się jako TDD, ponieważ możesz pisać testy jednostkowe dla twojego kodu konwertera. Converters może być używany do pisania złożonych konwersji, które czasami nie są możliwe przy użyciu wyzwalaczy. W przypadku złożonych konwersji Converters może zmniejszyć kod zamiast pisać serię Triggers.


0 dla odpowiedzi № 3

W większości scenariuszy wyzwalacze mogą wykonywać tę samą pracę, co dowolny konwerter, ale Konwertery mogą mieć logikę niestandardową / biznesową.

Jednym z ograniczeń Wyzwalaczy jest to, że Settery wTwoje DataTriggers mogą zmieniać tylko właściwości twoich elementów UI; więc nie możesz zaktualizować właściwości ViewModels wyzwalaczami, czyli tam, gdzie wygrywają Konwertery, pamiętaj o metodzie ConvertBack.

Krótko mówiąc, wyzwalacze mogą wykonywać tylko operacje OneWay, podczas gdy Konwertery mogą wykonywać operacje TwoWay