Вместо того, чтобы пытаться использовать параметр команды, создайте свойство для сохранения выбранной строки в:
private Model row;
public Model Row
{
get { return row; }
set
{
if (row != value)
{
row = value;
base.RaisePropertyChanged("Row");
}
}
}
где Model - класс объектов, отображаемых вашей сеткой.
Добавьте свойство selectedItem в сетку данных, чтобы использовать свойство:
<DataGrid SelectedItem="{Binding Row, UpdateSourceTrigger=PropertyChanged}"/>
тогда ваша команда будет проходить через строку к методу:
public ICommand DeleteSelectedCommand
{
get
{
return new RelayCommand<string>((s) => DeleteRow(Row));
}
}
и для ваших сочетаний клавиш:
<DataGrid.InputBindings>
<KeyBinding Key="Delete" Command="{Binding DeleteSelectedCommand}" />
</DataGrid.InputBindings>
Надеюсь, это поможет!