2013-04-17 13 views
8

Po prostu sprawdzałem różnicę między poleceniem WPF a zdarzeniem w WPF. Wylądowałem na następnej stronie stackoverflow, w której trwa dyskusja.Jaka jest różnica między poleceniem WPF a zdarzeniem w WPF?

What is the difference between WPF Command and Event?

jestem tylko w stanie zrozumieć po stamtąd

  1. Polecenia mogą być napisane w warstwie biznesowej podczas zdarzenia tylko w prezentacji
  2. Pojedyncza komenda może być związane z wieloma kontrolami ale imprezy może być powiązany tylko z jednym sterowaniem.

Mam rację? Czy jest między nimi jakaś różnica?

Odpowiedz

5

Masz rację, ale tylko częściowo.

  1. Głównym problemem jest, że wydarzenia nie pasuje dobrze do MVVM paradygmatu. Po prostu mówiąc, że zdarzenia nie dają się podłączyć, nie można powiązać z obsługą zdarzeń. Niemniej jednak nie ma ograniczeń co do używania poleceń w warstwie prezentacji, ale nie ma żadnych korzyści z tego. Jak również możesz złapać kontrolę w BLL i dołączyć do niego obsługę zdarzeń, ale ten przypadek jest jeszcze gorszy.
  2. Nie. Programy obsługi zdarzeń mogą być również powiązane z różnymi formantami, o ile dopasowanie typu argumentów zdarzeń jest zgodne.

Również polecenia dają pewne darmowe korzyści. Na przykład użycie elementu command będzie wyłączone, jeśli CanExecute() zwróci false. Kolejną korzyścią jest to, że używanie poleceń zmusza do przestrzegania zasady Separation of concerns.

4

Zdarzenie jest wyzwalaczem, który pojawia się, gdy coś dzieje się w interfejsie użytkownika. Polecenie to, w jaki sposób to wydarzenie jest obsługiwane przez twój model domeny.