WPF UserControl и ICommand - PullRequest
       30

WPF UserControl и ICommand

2 голосов
/ 13 сентября 2011

Я создал UserControl, в котором есть кнопка, а также стиль для кнопки.Стиль устанавливает фон кнопки при наведении мыши на триггер.Теперь я добавил свойство зависимости типа ICommand и установил команду кнопки для этого нового свойства.Привязка команды работает должным образом, однако, когда пользовательский элемент управления отключен (canexecute = false), при наведении мыши на триггер все еще изменяется фон.

Я пытался изменить наведенное на мышь триггере, как это, но это не работает:

<MultiTrigger.Conditions>
    <Condition Property="IsMouseOver" Value="True"/>
    <Condition Property="IsEnabled" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Orange"/>
</MultiTrigger>

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 13 сентября 2011

Я думаю, что свойство IsEnabled, на которое вы ссылаетесь в Условии, является свойством элемента управления, а не кнопки. Таким образом, управление включено, и поэтому условия триггера выполняются. Для доступа к кнопке вы можете попробовать использовать Relative Source Markup Extension.
Вы можете попробовать что-то вроде:

<Condition Binding="{Binding RelativeSource={RelativeSource
                                 AncestorType={x:Type Button}},
                             Path=IsEnabled}"
           Value="True"/>
...