簡體   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