O uso do WPF vem crescendo grandemente aqui no Brasil para desenvolvimento de aplicativos desktop para Windows. Com isso, desenvolvedores têm corrido atrás de aprendizado rápido e consequentemente na grande maioria das vezes não conseguem obter conhecimento sobre boas práticas relacionadas à tecnologia. Com isso acabam utilizando recursos de maneira não otimizada.

A razão de um comando é separar o que fazer, de quem vai fazer. Por exemplo um comando Copiar de um editor de texto qualquer. A lógica de como esse copiar é feito fica encapsulada em uma classe que implementa a interface ICommand. E esse comando pode ser associado a controles visuais que irão executá-lo. Pensando no editor de texto, o mesmo comando pode ser executado por um menu Editar>Copiar, por um atalho CTRL+C ou por um botão em alguma barra de ferramentas. Assim existe a reutilização de código. A ideia é similar aos Actions do Delphi.

Routed Commands

O WPF implementa esse conceito de comando através dos chamados Routed Commands, ou comandos roteáveis. Como é sabido, a estrutura visual do WPF/Silverlight é separada em Visual Tree e Logical Tree. Para entender vamos observar a Visual Tree da janela exibida na Figura 1.

...

Quer ler esse conteúdo completo? Tenha acesso completo