我有三个按钮(1.Male,2.Femal,3.OK),我想通过点击男性按钮或<来更改按钮的CommandParameters
属性(确定) strong> FeMale按钮。我发现问题Setting a property with an EventTrigger对我很有帮助,但TargetObject
函数TargetedTriggerAction<FrameworkElement>
void Invoke(object parameter){...}
始终为null
,为什么?
输出窗口中的错误信息。
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 :(得分:0)
如错误所示,bindingExpression没有路径。尝试添加路径
{Binding Path=OKGenderButton }
答案 1 :(得分:0)
正如ElementName Binding is failing提到的问题
代码Source={x:Reference DisplayMarkers}
有效
演示代码:
<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>