2016-11-08 11 views
0

У меня есть три кнопки (1.Male, 2.Femal, 3.OK), я хочу, чтобы изменить CommandParameters свойство кнопки (OK), нажав на кнопку Мужской Button или самку Button. Я нашел вопрос Setting a property with an EventTrigger очень полезен для меня, но TargetObjectTargetedTriggerAction<FrameworkElement> в void Invoke(object parameter){...} функция всегда null, ПОЧЕМУ?Почему TargetObject в TargetedTriggerAction всегда является нулевым

КАК Я могу решить проблему? enter image description here enter image description here

Информация об ошибке в окне вывода.

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=OKGenderButton'. BindingExpression:(no path); DataItem=null; target element is 'SetterAction' (HashCode=20203785); target property is 'TargetObject' (type 'Object')

ответ

0

Как указано ошибка, BindingExpression нет пути. Попробуйте добавить путь

{Binding Path=OKGenderButton } 
0

Поскольку вопрос ElementName Binding is failing упоминалось,

Код Source={x:Reference DisplayMarkers} работы

Demo Код:

<Button Grid.Row="2" Grid.Column="1" 
         Content="FeMale" 
         Margin="0 0 90 0" 
         VerticalAlignment="Bottom" 
         HorizontalAlignment="Right" 
         Width="93" 
         Height="93" 
         Style="{DynamicResource FemaleButton}"> 
        <i:Interaction.Triggers> 
         <i:EventTrigger EventName="Click"> 
          <triggerActions:SetterAction PropertyName="CommandParameter" 
                 TargetObject="{x:Reference OKGenderButton}" 
                 Value="{x:Static constants:Genders.FeMale}" /> 

         </i:EventTrigger> 
        </i:Interaction.Triggers> 
       </Button>