Если мы не можем связать команду MouseBinding, что мы должны делать?
-
07-07-2019 - |
Вопрос
Я бы хотел использовать обычную MouseBinding
для захвата события CTRL-Click на моем TextBlock
. К сожалению, свойство Command
не является свойством зависимости, и я использую MVVM, поэтому я не могу связать его с моей моделью представления.
Как Microsoft могла исключить эту базовую функциональность? Нет ли простых способов обнаружить CTRL-клики и привязать их к команде в моей модели представления?
Решение
Вы всегда можете взглянуть на использование Присоединенной команды поведения .
Другие советы
Изначально я полагал, что имел в виду использование члена TextBlock
для InputBindings
.
В .NET 4 InputsBinding
теперь наследуются от Freezable
, поэтому теперь свойство Command
является свойством зависимости (см. Поддержка связывания в InputBindings ), решение проблемы связывания. р>
Если вы застряли в .NET 3.5, вы можете создать некоторые вложенные свойства для любого типа события, которое вы хотите. В вашей функции OnCommandChanged
добавьте обработчик событий и выполните фильтрацию на основе модификаторов (например, ключа Control
или ClickCount
) в свой PropertyChangedCallback
метод.