Сначала я был в вашей лодке, я даже задавал тот же вопрос здесь.Но я пришел и действительно полюбил команды.
Некоторые команды сами по себе достаточно сложны, чтобы их можно было проверить.Они так же тестируемы, как и все остальное на вашей модели представления.
ICommand
также включает CanExecute
и CanExecuteChanged
, что позволяет вашему представлению интеллектуально включать / отключать себя практически бесплатно.Это фантастика в сложных видах.
Команды облегчают изменение представления, большинство элементов управления имеют свойство Command, к которому можно привязаться, и простое перемещение привязки легче, чем перехват с обработчиками событий.Это особенно верно, если у вас есть дизайнеры, работающие над XAML.
Вы можете написать почти всю логику представления, даже если представление не существует.Это приводит к хорошему потоку сборки мяса сразу, а затем бросает интерфейс поверх всех сразу.
Хранение вашего кода в одном месте ведет к более длительному обслуживанию.