0

こんにちは私は2つのラジオボタンを持っています。男性1名と女性1名。問題は、それらの1つがチェックされ(たとえば男性)、ユーザーがもう1つ(女性)に変更しようとすると、ユーザーに警告メッセージが表示されることです。彼が[OK]を押すと、が女性から男性に変わり、すべて問題ありません。しかし、彼がキャンセルを押すと、ラジオボタンも女性から男性に変わります。どうすればこれを防ぐことができますか?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 に答える