/ / caliburn micro: reutilizar comandos existentes - wpf, action, caliburn.micro, routed-command

caliburn micro: reutilize os comandos existentes - wpf, action, caliburn.micro, routed-commands

Eu tenho um aplicativo wpf simples com um controle(digamos um botão) que aciona um comando (digamos ApplicationCommands.Copy). Desejo que o mesmo Controle (o Botão) seja sensível ao contexto, ou seja, ele execute a ação apropriada (envie o comando Copiar), de acordo com o Controle atualmente focado. Portanto, se o foco estiver em uma caixa de texto, o comando será enviado para a caixa de texto, enquanto se outro controle tiver o foco, o comando será enviado a ele. Agora, eu tenho outro Control, um ContentControl cujo modelo é definido em XAML através do atributo View.Model = "{Binding ...}" do Caliburn Micro.

Eu gostaria de manter a "sensibilidade ao contexto" do botão, ou seja, o comando copy deve ser tratado pelo ViewModel do ContentControl.

Foi feita uma tentativa de definir uma ligação para ométodo do modelo adequado na visualização do modelo. Isso funciona bem, mas por outro lado, a maneira sugerida de lidar com situações semelhantes com o Caliburn Micro parece ser evitar comandos e usar ações. É possível implementar um tratamento semelhante usando apenas ações? Qual é a maneira sugerida de integrar o comando existente ao Caliburn Micro?

Desde já, obrigado!

Respostas:

0 para resposta № 1

a ação padrão está sempre vinculada ao nome do controle

<Button x:Name="Copy" Content="Copy"/>

no modelo de exibição

public void Copy()
{
}

se você quiser que o mesmo botão faça várias funções, você pode fazê-lo no próprio método

public void Copy()
{
// check and get which control has focus

// copy content to the control that has focus
}