Вы можете сделать что-то вроде
сначала связать с ключом
<Grid>
....
<DataGrid.InputBindings>
<KeyBinding Key="Delete" Command="{Binding DeleteCommand, Mode=OneWay}" CommandParameter="{Binding Path=SelectedItem, ElementName=yourElementName, Mode=OneWay}"/>
</DataGrid.InputBindings>
....
</Grid>
секунду, создать команду в вашей модели представления
public RelayCommand DeleteCommand { get; set; }
DeleteCommand = new RelayCommand(execute, canExecute);
и теперь вы можете используйте ту же функцию, которую вы написали ранее для canExecute, с некоторыми незначительными изменениями
private void canExecute (object SelectedItem)
{
if(...)
return true
else(...)
return false
}
Edit
вы можете использовать библиотеку MVVM, такую как Prism , которая будет сделай свою жизнь намного проще