Выполнить команду на основе выбора ListView с несколькими SelectionMode

Как обрабатывать выполнение команд с помощью множественного SelectionMode для Listview?
ListView ItemsSource привязан к ObservableCollection (таблица EF), и я установил предел выбора 2:

<ListView ItemsSource="{Binding EmployeeViewM.MainActivity}"   
                       SelectionMode="Multiple" 
                       IsSynchronizedWithCurrentItem="True" 
                       HorizontalAlignment="Right" 
                       BorderBrush="{x:Null}" 
                       Background="{x:Null}"
                       VirtualizingPanel.IsVirtualizing="True" 
                       VirtualizingPanel.IsContainerVirtualizable="True"                            
                       VirtualizingPanel.IsVirtualizingWhenGrouping="True"
                       VirtualizingPanel.ScrollUnit="Item" 
                       VirtualizingPanel.VirtualizationMode="Standard">

<I:Interaction.Behaviors>
   <limit:LimitSelectionBehavior Limit="2"/>
</I:Interaction.Behaviors>

Я хотел бы выполнить команду (RelayCommand) на основе количества выбранных элементов. Что-то вроде:

    If SelectItems.Count = 1 Then
        'Get first item selected
        'Save to the database to table 1
        'Start Timer_01
    ElseIf SelectItems.Count = 2 Then
        'Get last selected item
        'Save to the database to table 2
        'Start Timer_02
    End If

Как я могу обрабатывать несколько вариантов?
Спасибо за любые предложения

1 ответ

  1. Получите событие selection changed представления списка и повторите список, чтобы узнать, какие элементы выбраны. Проверьте пример кода ниже!

    public void Selection_Changed(object sender, EventArguments arg)
    {
      List<DataClass> selectedItems = new List<DataClass>();
    
      foreach(DataClass item in LISTVIEWNAME.SelectedItems)
      {
        selectedItems.Add(item);
      }
    }
    

    Теперь selectedItems будет иметь список выбранных элементов списка в представлении списка. Надеюсь, вы получили его!