我有一个复选框,其中缺陷属性被绑定到另一个复选框。在资源块中,我设置了一个设置复选框的事件触发器的样式。这里是代码:有界复选框没有触发事件
<Style x:Key="cbClickEvent" TargetType="{x:Type CheckBox}">
<EventSetter Event="Click" Handler="CheckBox_Click"/>
</Style>
<StackPanel Grid.Column="0" Grid.Row="1">
<CheckBox x:Name="cbAll" Content=" All" VerticalAlignment="Center"/>
<CheckBox Content=" MyCB" VerticalAlignment="Center" IsChecked="{Binding ElementName=cbAll, Path=IsChecked, Mode=OneWay}" Style="{StaticResource cbClickEvent}"/>
</StackPanel>
当我点击复选框MyCB事件被触发,但不是当我点击复选框全部。我错过了什么?
这不会使任何工作,问题是,他并没有设置Style到cbAll CheckBox,即使他向Checked和Unchecked事件添加了处理程序,如果他没有首先将Style设置为cbAll CheckBox,它们仍不会被解雇。 – Carlo 2011-04-20 20:12:10
@Carlo - 当您点击“All”复选框时,值('IsChecked')将通过绑定转移到“MyCB”的“IsChecked”。并且因为'IsChecked'值被改变了,'Checked' /'Unchecked'事件将会在“MyCB”复选框(应用了样式的地方)上触发,所以处理程序将被执行。 – 2011-04-20 20:18:51
是的,我听到你,但IsChecked与Click事件无关。您可以选中并取消选中,无论点击事件是否被点击,点击事件都会被解雇。你所说的是,如果他订阅了Checked和Unchecked事件,那么Checked和Unchecked处理程序将同时被触发在botch CheckBoxes上(因为IsChecked属性被绑定)。但是如果你仔细观察,如果风格设置不正确,那么cbAll没有订阅Click事件(也不会被Checked和Unchecked事件),在这种情况下,它不是。 – Carlo 2011-04-20 20:31:01