Pergunta

Eu tenho um controle de usuário com um Button ligado ao NavigationCommands.RefreshCommand. O manipulador para o comando está no controle pai. Do condutor CanExecute esta aparência:

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

Por alguma razão, o Button permanecerá desativado até que eu clicar sobre a janela.

Se eu clicar no Button e obtê-lo para executar (que causa IsConnecting para ser temporariamente definido para true) ele irá desativar corretamente o botão, mas não permitirá que o botão até que eu causar outro evento na janela (por exemplo. um clique).

Existem quaisquer ferramentas ou truques que pode usar para tentar depurar o manipulador CanExecute de um comando que está ligada a um botão?

Foi útil?

Solução

CanExecute do botão só é chamado quando algo acontece na GUI. Desde o IsConnecting muda em segundo plano, em seguida, WPF não atualizar o controle.

Para forçar WPF para atualizar a chamada CanExecute CommandManager.InvalidateRequerySuggested

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top