Usually you should get the current SelectionItem passed as a parameter to your command. Since the event is recorded in the past tense, so you should get the current SelectedItem, not the previous one.
What you can try is to add the binding for SelectedItem to your ListPicker and omit passing SelectedItem to your command as a parameter.
<toolkit:ListPicker SelectedItem="{Binding SelectedBuilding, Mode=TwoWay}" > <i:Interaction.Triggers> <i:EventTrigger EventName="SelectionChanged"> <i:InvokeCommandAction Command="{Binding Path=BuildingSelectionCommand}"/> </i:EventTrigger> </i:Interaction.Triggers> </toolkit:ListPicker>
Then, your team must access the SelectedBuilding property to execute
public class BuildingSelectionCommand{
The code may be different on your side, because it depends on how you implemented ViewModel and Command, but I think you should get it.
Another way without using EventTrigger is to execute the command directly in your SelectedBuilding-Property.
public Building SelectBuilding{ get { return _selectedBuilding } set{ _selectedBuilding = value; RaisePropertyChanged("SelectedBuilding"); if (BuildingSelectionCommand.CanExecute(_selectedBuilding)) { BuildingSelectionCommand.Execute(_selectedBuilding); } }
Jehof source share