or que evitar o codebehind no padrão WPF MVV

No artigo,plicativos @WPF com o padrão de design Model-View-ViewModel, o autor que é Josh Smith disse:

(1) Em uma arquitetura MVVM bem projetada, o código por trás da maioria das Views deve estar vazio ou, no máximo, conter apenas código que manipule os controles e os recursos contidos nessa exibição. (2) Às vezes, também é necessário escrever código no código de um View que interaja com um objeto ViewModel, como conectar um evento ou chamar um método que, de outra forma, seria muito difícil de invocar a partir do próprio ViewModel.

Minha pergunta é, no (1), por que o código vazio por trás é considerado um MVVM bem projetad (Parece que o código vazio por trás é sempre bom.)

EDIT: Minha pergunta é, como segue, por que uma abordagem como aAttachedCommandBehavior ou oInvokeCommandAction tenta evitar o código por trás da codificaçã

eixe-me explicar mais detalhe

No que diz respeito ao (1), eu pensaria na seguinte situação a partir do AttachedCommandBehavior. Como a fronteira não implementa oICommandSource para oMouseRightButtonDown, normalmente não é possível vincular o evento e oICommand, mas pode fazer com o AttachedCommandBehavior.

<!-- I modified some code from the AttachedCommandBehavior to show more simply -->
<Border>
    <local:CommandBehaviorCollection.Behaviors>
           <local:BehaviorBinding Event="MouseRightButtonDown" 
                  Command="{Binding SomeCommand}" 
                  CommandParameter="A Command on MouseRightButtonDown"/>
    </local:CommandBehaviorCollection.Behaviors>
</Border>

O

Podemos fazer isso com oSystem.Windows.Interactivity.InvokeCommandAction.

<Border xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" >
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseRightButtonDown">
            <i:InvokeCommandAction Command="{Binding SomeCommand}" 
               CommandParameter="A Command on MouseRightButtonDown"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Border>

MAS

Usamos o XAML a seguir e seu código por trás do códigoBorder_MouseRightButtonDown, que está vinculado ao (2) Josh Simth dito acim

<Border MouseRightButtonDown ="Border_MouseRightButtonDown"/>

Acho que usar o codebehind como acima não é ruim, apenas porque a diferença entre eles é apenas onde está a ligação de um comando ou a adição de um manipulador de evento

O que você pensa sobre isso

questionAnswers(4)

yourAnswerToTheQuestion