ushareit - Windows Phone 8.1-MVVMLight-¿Por qué no funciona EventToCommad?
www ushareit com for pc v3 0 (3)
No puedo usar EventToCommand en mi aplicación Windows Phone 8.1.
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP8"
Lo intenté también con assembly = GalaSoft.MvvmLight.Extras.WP81 ...
<controls:PivotItem Name="pivotItem">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding SelectServiceCommand}"
CommandParameter="{Binding SelectedIndex, ElementName=pivotItem}"/>
</i:EventTrigger>
<!-- other stuff -->
</i:Interaction.Triggers>
Obtengo los siguientes errores:
- El miembro "Triggers" no se reconoce o no es accesible.
- Tipo desconocido ''EventTrigger'' en el espacio de nombres XML ''clr-namespace: System.Windows.Interactivity; assembly = System.Windows.Interactivity''
- Error 2 La propiedad conectable ''Disparadores'' no se encontró en el tipo ''Interacción''. ...
¿Puede alguien ayudarme por favor?
¿Está apuntando a Windows Phone 8.1 o WinRT (Universal Apps)?
Si ha elegido la segunda opción, en esta publicación de blog MVVM Light autor explica la falta de soporte para EventToCommand, básicamente en WinRT ya existe un mecanismo similar a EventToCommand - Behaviors.
Al actualizar mi aplicación WP8.0 para usar MVVMLight 5.0+ se deshabilitó el comportamiento de EventToCommand, mi búsqueda de una solución me llevó a esta publicación de blog que proporcionó código fuente para implementar una acción de comando personalizada que pasará los argumentos de evento como el parámetro. Implementar el código devolvió mi aplicación a la orden de trabajo.
Espera que esto te ayude: D
Windows Phone 8.1
Microsoft ha desarrollado su propia funcionalidad EventToCommand. Está ubicado en Behaviors SDK. Alguien en le dice que descargue este SDK a través de Nuget. Si no puede encontrar el paquete en NuGet, hágalo en Add reference dialog
.
(Mi cuadro de diálogo "Agregar referencia" puede diferir del original debido a la extensión de Productivity Power Tools
)
Aquí hay un ejemplo de uso simple:
<ListBox ItemsSource="{Binding Persons, Mode=OneWay}"
SelectedItem="{Binding SelectedPerson, Mode=TwoWay}">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="SelectionChanged">
<core:InvokeCommandAction Command="{Binding DisplayPersonCommand}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</ListBox>