Почему следует избегать скрытого кода в шаблоне WPF MVVM?

В статье Приложения WPF с шаблоном проектирования модель-представление-модель представления , автор, который Джош Смит сказал:

(1) В хорошо спроектированной архитектуре MVVM программный код для большинства представлений должен быть пустым или, самое большее, содержать только код, который управляет элементами управления и ресурсами, содержащимися в этом представлении. (2) Иногда также необходимо написать код в скрытом коде представления, который взаимодействует с объектом ViewModel, например, перехватывает событие или вызывает метод, который в противном случае было бы очень сложно вызвать из самой ViewModel.

Мой вопрос: , в (1), почему пустой код считается хорошо спроектированным MVVM. (Звучит так, что пустой код всегда хорош.)

РЕДАКТИРОВАТЬ: У меня следующий вопрос:почему такой подход, как AttachedCommandBehavior или InvokeCommandAction , пытается избежать кодирования с выделенным кодом.

Позвольте мне объяснить более подробно.

Что касается (1), Я бы подумал, как из AttachedCommandBehavior . Поскольку Border не реализует ICommandSource для MouseRightButtonDown , вы не можете обычно связывать событие и ICommand , но можете сделать это с помощью AttachedCommandBehavior .



    
           
    

ИЛИ

Мы можем сделать это с помощью System.Windows.Interactivity.InvokeCommandAction .


    
        
            
        
    

НО,

Мы используем следующий XAML и его внутренний код, имеющий Метод Border_MouseRightButtonDown , который связан с (2) Джошем Симтом, указанным выше.


Я думаю, что использование выделенного кода, как указано выше, неплохо только потому, что разница между ними только в том, где привязать команду или добавить обработчик событий есть.

Что вы думаете об этом?

47
задан Jin-Wook Chung 18 April 2016 в 02:21
поделиться

1 ответ

Шаблон MVVM мощен, но я нахожу его слишком 'Пуристским'. Я вижу, что преимущество имеет код позади дескриптора все команды и свойства в представлении, в то время как ViewModel обеспокоен любым переводом в свойства бизнес-модели. Преимущество этого - то, что, если Вы хотите изменить пользователя UI, возможно, от рабочего стола до браузера, он, вероятно, будет просто заменять Представление и его код позади.

Просто мои мысли!!

-1
ответ дан 26 November 2019 в 19:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: