Mvvm : Come invocare i Command dagli Eventi in Winrt

Quando ho scritto la mia prima app su Winrt con MvvmLight ho perso molto tempo per cercare di invocare un Command nel ViewModel da un evento.

Nella maggior parte delle piattaforme MvvmLight include una classe helper che ci aiuta a farlo.

Vediamo come possiamo risolvere questo problema in maniere veloce ed efficiente. Includiamo l’estensione Behaviour Sdk  al progetto, facendo tasto destro sul progetto e cliccando “aggiungi referenza” o “reference manager”.

AddBehaviorsSdk

Ora nella pagina in cui dobbiamo invocare l’evento aggiungiamo i seguenti namespace in testa allo Xaml

<Page
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core">

Nel mio caso, cercavo di richiamare l’evento Loaded della pagina. Quindi usiamo InvokeCommandAction per invocare il Command quando l’evento è generato dal trigger.

<interactivity:Interaction.Behaviors>
  <core:EventTriggerBehavior EventName="Loaded">
      <core:InvokeCommandAction Command="{Binding ActivateCommand}" />
  </core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>

Al caricamento della pagina viene invocato ActivateCommand.

Buon divertimento !!!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...