Свойство XAML Setter для команды - PullRequest
2 голосов
/ 15 сентября 2009

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

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

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

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

Ответы [ 4 ]

1 голос
/ 22 марта 2010

Здесь вам нужно прикрепленное поведение. Я могу рекомендовать вам посмотреть эту хорошую статью: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/04/14/wpf-commands-everywhere.aspx

Ваш код будет выглядеть (с библиотекой Attached Commands):

<Style>
  <Setter Property="ts:CommandSource.Trigger">
    <Setter.Value>
      <ts:PropertyCommandTrigger Property="IsMouseOver" Value="true" Command="{Binding Path=PushPinMouse}"/>
    </Setter.Value>
  </Setter>
</Style>

Это говорит: «Когда мышь выключена, выполняет команду PushPinMouse». Если это не то поведение, которое вам нужно, возможно, вы сможете адаптировать этот код;) Как говорили другие, команда кнопки выполняется только при нажатии, НО эта библиотека может добавлять команды к другим событиям (тогда как перенаправленные события или события, изменяющие свойства).

Вам все еще понадобится этот триггер:

<Trigger Property="IsMouseOver" Value="True">
  <Setter Property="Cursor" Value="Hand"></Setter>
</Trigger>
0 голосов
/ 22 октября 2009

Команды не привязаны, вам нужно назначить команду использовать Command = PushPinMouse

0 голосов
/ 06 ноября 2009

Вы изменяете команду, которую сработает кнопка, но она фактически не выполняет кнопку, пока вы не нажмете ее. Так что в этом случае вам нужно будет навести курсор мыши и щелкнуть, чтобы выполнить команду.

Я также предполагаю, что вы привязали свою команду к командной функции с помощью CommandBinding?

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

Команды выполняются элементами управления, такими как ToggleButton, при нажатии на них. Я не имею представления о вашем сценарии, но, возможно, вы можете установить свойство IsChecked в своем установщике и привязать свойство к IsChecked. Надеюсь, это поможет.

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