В простых сценариях можно воспользоваться стандартным механизмом предоставляемым WPF:
<Window.InputBindings>
<KeyBinding Key="D"
Modifiers="Control"
Command="{Binding DeleteItemCommand}"
CommandParameter="{Binding ElementName=_projectTreeView, Path=SelectedItem, Mode=OneWay}"/>
</Window.InputBindings>
Если необходимо хранить сочетания клавиш отдельно от разметки, то можно написать свой класс наследник от InputBinding в котором реализовать необходимую логику. Я реализовывал похожую задачу, можно почитать здесь: Горячие клавиши в WPF
Если нужно зарегистрировать глобальные горячие клавиши, то об этом можно почитать в статье: Регистрация горячей клавиши (hotkey) в системе для WPF приложения