I am using a WPF Datagrid and I want to keep a record of which was the last selected item when I do selection changed event but want to cancel the operation if user opts for the same.
For this I used eventargs travel from my Veiw to Viewmodel. Is there any other way ? I wanted to do it in pure MVVM fashion. Relevant code below
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cal:ActionMessage MethodName="grd_SelectionChanged" >
<cal:Parameter Value="$eventArgs"/>
</cal:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
In the view model in the event handler
publicasyncvoidgrd_SelectionChanged(SelectionChangedEventArgseventArgs)
{
var previousElement = eventArgs.RemovedItems[0] as ISomeIdName;
if (previousElement != null)
{
SomeIdName = previousElement;
}
}