Привязка Xaml к командам - PullRequest
0 голосов
/ 15 сентября 2009

Я пытаюсь вызвать команду, когда моя мышь находится над кнопкой переключения.

У меня есть следующий код.

<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Command" Value="{Binding Path=PushPinMouse}" />
</Trigger>

Когда я переворачиваю мышь, рука показывает. Но когда я наведу на нее курсор мыши, он не ударит по моему методу PushPinMouse. Почему это так?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2009

Нет прямого способа сделать это. Распространенным примером является создание присоединенного поведения, которое будет прослушивать рассматриваемое событие и запускать событие.

Хорошая, простая реализация демонстрируется в этой статье CodeProject на Cinch Framwork . Ищите реализацию класса LifetimeEvent. Это обеспечивает присоединенное поведение, которое подписывается на событие «Активировано» в форме. Вы также можете легко сделать тот, который прослушивает изменения IsMouseOver и запускает команду.

Если бы вы написали это, вы могли бы сделать:

<Button local:HoverBehavior.Hovering="{Binding MyCommand}" />

Вы можете использовать класс Behavior<T> в Expression Blend SDK, чтобы реализовать это также более простым способом.

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

Установка Command свойства кнопки не должна вызывать команду. Предполагается указать команду, которая будет срабатывать при нажатии кнопки. MSDN говорит так прямо сейчас:

Получает или задает команду для вызова при нажатии этой кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...