2013-04-29 5 views
0

Я пытаюсь установить свойство IsEnabled кнопки, используя multibinding, потому что это свойство зависит от трех переменных.Почему я не могу использовать многосвязную связь с свойством IsEnabled кнопки?

Если бы я установить Собственость содержание, я мог бы использовать этот код:

<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75"> 
        <Button.Content> 
         <MultiBinding Converter="{StaticResource myMultiValueConverter}"> 
          <Binding ElementName="MyElement"/> 
          <Binding /> 
         </MultiBinding> 
        </Button.Content> 
</Button> 

Я пытаюсь использовать этот код:

<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75"> 
        <Button.IsEnabled> 
         <????? 

Но в этом случае, хотя Button.IsEnabled является доступный, в следующей строке я не могу найти ключевое слово Multibinding, поэтому я не могу использовать многосвязную связь с свойством IsEnabled.

Почему? Есть ли способ установить свойство IsEnabled с помощью многозначного преобразователя?

Спасибо.

ответ

2

Синтаксис должен быть таким же, как у вас для Button.Content - просто замените "Content" на "IsEnabled".

<Button.IsEnabled> 
    <MultiBinding Converter="{StaticResource myMultiValueConverter}"> 
     <Binding ... /> 
     <Binding ... /> 
     <Binding ... /> 
    </MultiBinding> 
</Button.IsEnabled> 

Это не может автозаполнение для вас, потому что IsEnabled свойства ожидает булево значение, а не MultiBinding объекта, но он не должен давать вам какую-либо ошибки, а также компилировать и выполнять только штраф.

(Это автозаполнение для Button.Content, потому что Content свойство типа object, который включает в себя MultiBinding объект)

+0

Наконец я компилирую с Button.Content, а затем изменить содержание по IsEnabled, компилируется и затем работает. Благодарю. –

+0

@Rachel Проблема только в том, что 'UpdateSourceTrigger =" PropertyChanged "' не вызывает привязку. Я попытался помещать 'UpdateSourceTrigger =" PropertyChanged "' в каждый элемент 'Binding', а также в элемент' MultiBinding', но он не обновляется. Мне нужно сфокусироваться на этом – Ozkan