我有一個複選框,其中缺陷屬性被綁定到另一個複選框。在資源塊中,我設置了一個設置複選框的事件觸發器的樣式。這裏是代碼:有界複選框沒有觸發事件
<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