WPF CommandManager позволяет выполнять следующие действия (псевдо-ish-код):
<Button Name="SomeButton" Command="{Binding Path=ViewModelCommand}"/>
А в коде позади:
private void InitCommandEvents()
{
CommandManager.AddExecutedEventHandler(this.SomeButton, SomeEventHandler);
}
SomeEventHandler
никогда не вызывается.
Мне это не показалось чем-то очень неправильным, но если вы подумаете о том, что происходит внутри CommandManager.AddExecutedEventHandler
, то будет понятно, почему это не так. Добавьте к этому тот факт, что в документации четко указано, что CommandManager работает только с RoutedCommands.
Тем не менее, это на какое-то время очень расстроило меня и привело к следующему вопросу:
Что, по вашему мнению, является лучшим решением для того факта, что CommandManager не поддерживает пользовательские ICommands? Особенно, если вы хотите добавить поведение вокруг выполнения команды?
Сейчас я запускаю команду вручную в коде после события нажатия кнопки.