为什么TargetedTriggerAction的TargetObject始终为null

时间:2016-11-08 02:53:10

标签: c# wpf triggers datatrigger eventtrigger

我有三个按钮(1.Male,2.Femal,3.OK),我想通过点击男性按钮或<来更改按钮的CommandParameters属性(确定) strong> FeMale按钮。我发现问题Setting a property with an EventTrigger对我很有帮助,但TargetObject函数TargetedTriggerAction<FrameworkElement> void Invoke(object parameter){...}始终为null为什么

我该如何解决问题? 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')

2 个答案:

答案 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>