Если мы не можем связать команду MouseBinding, что мы должны делать? - PullRequest
5 голосов
/ 15 сентября 2009

Я бы хотел использовать обычную MouseBinding для захвата события CTRL-Click на моем TextBlock. К сожалению, свойство Command не является свойством зависимости, и я использую MVVM, поэтому я не могу связать его с моей моделью представления.

Как Microsoft могла исключить эту базовую функциональность? Нет ли простых способов обнаружить CTRL-клики и привязать их к команде в моей модели просмотра?

Ответы [ 2 ]

5 голосов
/ 06 декабря 2010

Первоначально, я полагаю, я имел в виду использование члена TextBlock InputBindings.

В .NET 4 InputsBinding s теперь наследуются от Freezable, поэтому теперь свойство Command является свойством зависимости (см. Поддержка связывания в InputBindings ), решая проблему связывания.

Если вы застряли в .NET 3.5, вы можете создать некоторые вложенные свойства для любого типа события, которое вы хотите. В вашей функции OnCommandChanged добавьте обработчик событий и фильтр на основе модификаторов (например, клавиши Control или ClickCount) в вашем методе PropertyChangedCallback.

3 голосов
/ 15 сентября 2009

Вы всегда можете взглянуть на использование Прикрепленное поведение команд .

...