0

您好,我有两个单选按钮。一男一女。问题是,当其中一个被选中(例如男性)并且用户尝试更改为另一个(女性)时,我会向用户显示警告消息。如果他按下确定,会从女性变为男性,一切正常。但是当他按下取消按钮时,单选按钮也会从女性变为男性。我怎样才能防止这种情况?有什么方法可以禁用 radiobutton_checked 侦听器并在我想要的时候启用?
男性和女性听众的代码如下:

private void NewTrdButtonMale_Checked(object sender, RoutedEventArgs e)
    {
//if there are participants for deletion i display a warning message that says that if you change from female to male the deletion will be done
        if (newAreParticipantsForDeletion())
        {
            switch (warningMessage())
            {
                case "OK":
                    //nothing useful for you here
                    break;
                case "Cancel":
                    break;
            }
        }
        else
        {
            //nothing interesting here
        }

    }

    private void NewTrdButtonFemale_Checked(object sender, RoutedEventArgs e)
    {
        //it is the same code as the above but it is for female
    }

上述方法是单选按钮的侦听器。我想要做的是,如果用户按下取消,则无需进行任何更改。但这是困难的部分,因为我已经在男性检查的听众里面,所以改变已经完成。

4

1 回答 1

0

我找到了解决方案。

我必须将下一个代码放入取消选择中。

NewTrdButtonFemale.Checked -= new RoutedEventHandler(NewTrdButtonFemale_Checked);
                    NewTrdButtonFemale.IsChecked = true;
                    NewTrdButtonFemale.Checked += new RoutedEventHandler(NewTrdButtonFemale_Checked);

上面的代码禁用了监听器。之后我恢复了女性选择,然后我再次启用了监听器。

于 2012-12-08T16:13:19.573 回答