次のように、ViewModelでRelayCommandを作成できるかどうか疑問に思います。
public RelayCommand<IList<VectorViewModel>> MyCommand { get; set; }
ctor:
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);
}
}
この段階で、前に作成したRelayCommandを使用して、リストをViewModelに送り返したいと思います。コードでRelayCommandを作成し、それをViewModelのコマンドにバインドして起動することは可能でしょうか?
別の方法はありますか?もちろん、MVVM-Lightで弱い参照のMessengerクラスを使用することもできますが、基になるViewModelだけでなく、その呼び出しのすべてのサブスクライバーに送信されるのが気に入らない点があります(複数ある場合はMessengerを使用すると致命的です) TabControls内の同じビューのインスタンス)
誰かが私を続けるためのアイデアを持っていることを願っています、ありがとう、Kave