Лично мне нравится библиотека Джоша Смита MVVM Foundation . Там он использует класс RelayCommand
, но он звучит очень похоже на ваш DelegateCommand
из инструментария. Он позволяет вам создать команду и передать логику CanExecute и Execute через лямбда-выражения. Это поможет уменьшить количество шаблонного кода.
В своем блоге Джош также говорит об использовании универсального наблюдателя свойств, чтобы избежать некоторых более сложных аспектов обработки событий PropertyChanged
. Это тоже стоит посмотреть.
Честно говоря, многие из так называемого «стандартного» кода создают очень динамичную и гибкую основу для вашего приложения. Если вы создаете небольшое, легко обслуживаемое приложение, вы можете спросить себя: «нужно ли мне вообще применять шаблон MVVM здесь?» Если, с другой стороны, вы создаете более крупное приложение, которое будет имеют длительный срок службы и требуют значительного обслуживания, тогда этот стандартный код поможет вам сэкономить.