Интересно, могу ли я создать RelayCommand в моей ViewModel следующим образом:
public RelayCommand<IList<VectorViewModel>> MyCommand { get; set; }
ктор:
MyCommand = new RelayCommand<IList<VectorViewModel>>(DoSomething);
А из кода XAML я получаю выбранные строки из DataGrid и помещаю их в список.
if (xamDatagridVector.SelectedItems.Records.Count >= 3)
{
var list = new List<VectorViewModel>();
foreach (DataRecord record in xamDatagridVector.SelectedItems.Records)
{
list.Add((VectorViewModel)record.DataItem);
}
}
На этом этапе я хотел бы отправить список обратно в ViewModel, используя эту RelayCommand, которую я создал ранее. Можно ли создать RelayCommand в коде, привязать его к команде ViewModel и запустить?
Какой альтернативный способ есть? Я мог бы, конечно, использовать класс Messenger со слабыми ссылками в MVVM-Light, но что-то мне не нравится, так это то, что он будет отправлять его всем подписчикам этого вызова, а не только базовой ViewModel (использование Messenger смертельно опасно, когда у вас есть несколько экземпляры одного и того же представления в TabControls)
Я надеюсь, что у кого-то есть идея поддержать меня, большое спасибо, Кейв.