none
RadioButton的Content中带有CheckBox时的事件触发问题 RRS feed

  • 问题

  • XAML如下:

            <RadioButton Checked="RadioButton_Checked" Unchecked="RadioButton_Unchecked">

                <CheckBox Content="内选项" Click="CheckBox_Click" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
            </RadioButton>

    C# 

            private void RadioButton_Checked(object sender, RoutedEventArgs e)
            {
                Console.WriteLine("RadioButton_Checked被激发");
            }

            private void RadioButton_Unchecked(object sender, RoutedEventArgs e)
            {
                Console.WriteLine("RadioButton_Unchecked被激发");
            }

            private void CheckBox_Click(object sender, RoutedEventArgs e)
            {
                e.Handled = true;
            }

            private void CheckBox_Checked(object sender, RoutedEventArgs e)
            {
                e.Handled = true;
            }

            private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
            {
                e.Handled = true;
            }

    如果不给CheckBox设置相同事件,并设置e.Handled = true;就会激发 RadioButton_Checked事件,而这个事件不是监测IsChecked属性的么?为什么它也会被执行?除了以上方法,有没有其他方法可以阻止RadioButton_Checked和RadioButton_UnChecked事件的执行?

    2013年8月4日 4:01

全部回复

  • 如果你不注册RadioButton_Checked和RadioButton_UnChecked事件,这两个应该不会被执行的吧。

    我想如果你想解决这个问题,最好去了解下这些事件发生的先后顺序。这样可能更好些。

    2013年8月5日 8:45
  • ,当然,不注册事件就不会触发了,问题是我非注册这些事件不可

    我想你没有听明白我的问题,我想问的是为什么RadioButton的值未改变依然能触发RadioButton_Checked事件

    2013年8月7日 1:33