title: How to pass Multiple parameters as CommandParameter in InvokeCommandAction In WPF App Using MVVM
body: <p>I am using System.Windows.interactivity.dll  to get mouse events in my ViewModel in the following manner.</p>
  
  <pre><code> &lt;ListBox x:Name="listBox" ItemsSource="{Binding HeaderList}" DisplayMemberPath="Text" Width="Auto"   Margin="0,0,0,300" Height="Auto"  &gt;
      &lt;i:Interaction.Triggers&gt;
              &lt;i:EventTrigger EventName="MouseLeftButtonUp"&gt;
                  &lt;i:InvokeCommandAction Command="{Binding MouseLeftButtonUpCommand}" 
                           CommandParameter="{Binding SelectedItem, ElementName=listBox}"/&gt;
          &lt;/i:EventTrigger&gt;
  
          &lt;/i:Interaction.Triggers&gt;
  &lt;/ListBox&gt;
  </code></pre>
  
  <p>and in ViewModel.</p>
  
  <pre><code>        public class Headers
      {
          public Headers()
          {
              IsSelected = false;
          }
  
          public string Text { get; set; }
          public ListBox Control { get; set; }
          public bool IsSelected { get; set; }
      }
     public ObservableCollection&lt;Headers&gt; HeaderList
      {
          get { return _headerList; }
          set
          {
              _headerList = value;
              base.OnPropertyChanged("HeaderList");
          }
  
      }
   public ICommand MouseLeftButtonUpCommand { get; set; }
   public DesignTemplateViewModel()
      {
          string file = SessionHelper.FilePath;
          List&lt;string&gt; columns = new List&lt;string&gt;();
  
  
          if (!string.IsNullOrEmpty(file))
          {
              ExcelHelper Excel = new ExcelHelper(file);
              columns = Excel.GetHeader();
          }
          else
          {
              columns.Add("Name");
              columns.Add("FatherName");
              columns.Add("MotherName");
              columns.Add("Class");
              columns.Add("RollNo");
              columns.Add("ModeOfTransport");
              columns.Add("Phone");
              columns.Add("Mobile");
          }
          HeaderList = new ObservableCollection&lt;Headers&gt;();
  
          foreach (string column in columns)
          {
              HeaderList.Add(new Headers
              {
                  Text = column,
              });
          }
  
          MouseLeftButtonUpCommand = new RelayCommand((item) =&gt; OnMouseLeftButtonUp((Headers)item));
      }
    private void OnMouseLeftButtonUp(Headers sender)
      {
          ListBox control = sender.Control as ListBox;
          DragDrop.DoDragDrop(control, sender.Text, DragDropEffects.Copy);
      }
  </code></pre>
  
  <p>So here I need to pass multiple objects such as Control that generated this event, Mouse related properties etc. Now I  am Passing single parameter and this code is working fine.
  So My Questions is that how can pass Multiple parameters from Xaml(View) and access them on this ViewModel.
  Any code help??</p>