繁体   English   中英

未选中复选框事件不会触发

[英]checkbox event not firing when unchecked

这里简单的问题。 也很简单的代码。

我有一个复选框,也有一个组合框。

基本上,每当复选框被选中或取消选中时,组合框的选定项目都应更改。

从取消检查到选中时,它可以工作,但是当我取消选中它时,组合框值保持不变。

复选框代码:

private void linked_Checked(object sender, RoutedEventArgs e)
    {
        if (linked.IsChecked == true)
        {
            Chained.SelectedIndex = 0;
        }

        if (linked.IsChecked == false)
        {
            Chained.SelectedIndex = 1;
        }
    }

组合框代码:

<ComboBox x:Name="Chained"  Text="{Binding Chained, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="128,69,132,-92" Grid.Row="15" Visibility="Visible" SelectionChanged="Chained_SelectionChanged" >
                    <ComboBoxItem Content="True"/>
                    <ComboBoxItem Content="False"/>
                </ComboBox>

这应该很简单吧? 那我哪里错了? 如果有办法用xaml做到这一点,那么我也很高兴。

放入Unchecked事件中,

private void linked_UnChecked(object sender, RoutedEventArgs e)
    { 
        if (linked.IsChecked == false)
        {
            Chained.SelectedIndex = 1;
        }
    }

原因是触发了选中的事件时,状态尚未更改,并且这在设置新值之前发生。 这意味着在触发事件时,您仍会获得旧值。 所以我总是觉得CheckStateChanged事件好得多。 因为当检查状态更改时会触发此事件。 所以你可以这样说

  private void checkBox1_CheckStateChanged(object sender, EventArgs e)
            {

               if (linked.CheckState == CheckState.Checked){

                Chained.SelectedIndex = 0;
               }


            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM