Как передать несколько параметров в виде CommandParameter в InvokeCommandAction в приложении WPF с использованием MVVM
Я использую System.Windows.interactivity.dll для получения событий мыши в моей ViewModel следующим образом.
<ListBox x:Name="listBox" ItemsSource="{Binding HeaderList}" DisplayMemberPath="Text" Width="Auto" Margin="0,0,0,300" Height="Auto" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding MouseLeftButtonUpCommand}"
CommandParameter="{Binding SelectedItem, ElementName=listBox}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox>
и в ViewModel.
public class Headers
{
public Headers()
{
IsSelected = false;
}
public string Text { get; set; }
public ListBox Control { get; set; }
public bool IsSelected { get; set; }
}
public ObservableCollection<Headers> HeaderList
{
get { return _headerList; }
set
{
_headerList = value;
base.OnPropertyChanged("HeaderList");
}
}
public ICommand MouseLeftButtonUpCommand { get; set; }
public DesignTemplateViewModel()
{
string file = SessionHelper.FilePath;
List<string> columns = new List<string>();
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<Headers>();
foreach (string column in columns)
{
HeaderList.Add(new Headers
{
Text = column,
});
}
MouseLeftButtonUpCommand = new RelayCommand((item) => OnMouseLeftButtonUp((Headers)item));
}
private void OnMouseLeftButtonUp(Headers sender)
{
ListBox control = sender.Control as ListBox;
DragDrop.DoDragDrop(control, sender.Text, DragDropEffects.Copy);
}
Поэтому здесь мне нужно передать несколько объектов, таких как Control, который сгенерировал это событие, свойства, связанные с мышью и т. Д. Теперь я передаю один параметр, и этот код работает нормально. Итак, мои вопросы таковы: как передать несколько параметров из Xaml (View) и получить к ним доступ в этой ViewModel. Любой код поможет ??