Se não podemos vincular comando de um MouseBinding, o que devemos fazer?
-
07-07-2019 - |
Pergunta
Eu adoraria ser capaz de usar um MouseBinding
regular para capturar um evento CTRL-clique no meu TextBlock
. Infelizmente a propriedade Command
não é uma propriedade de dependência e estou usando MVVM, então eu não pode ligar para o meu viewmodel.
Como poderia Microsoft ter deixado de fora desta funcionalidade básica? Será que não existem maneiras fáceis de detectar CTRL-Cliques e ligá-los a um comando no meu ViewModel?
Solução
Você pode sempre dar uma olhada usando anexada Command comportamentos .
Outras dicas
Inicialmente eu acredito que eu estava me referindo ao uso de membro TextBlock
de InputBindings
.
Em .NET 4 InputsBinding
s agora herdam Freezable
, então agora a propriedade Command
é propriedade de dependência (ver Encadernação apoio na InputBindings ), resolvendo o problema de ligação.
Se você está preso com .NET 3.5 você pode criar algumas propriedades anexadas para qualquer tipo de evento que você deseja. Em sua função OnCommandChanged
adicionar o manipulador de eventos e filtro baseado em modificadores (como a chave Control
ou o ClickCount
) em seu método PropertyChangedCallback
.