-4

チェックボックスとラジオボタンから値を読み取るためにグローバル変数を割り当てようとしましたが、選択が変更されても値は更新されません! 私はどこで間違ったことをしましたか?コードは次のとおりです。

private void chkInMut_Checked(object sender, RoutedEventArgs e)
    {
        GlobalVar.Mutate = 1;
    }

    private void chkShwCal_Checked(object sender, RoutedEventArgs e)
    {
        GlobalVar.ShowCal = 1;
    }

    private void chkOutSol_Checked(object sender, RoutedEventArgs e)
    {
        GlobalVar.OutCal = 1;
    }
}

public static class GlobalVar
{
    static int _MaxMin, _MutVal, _CalShow, _CalOut;

    /// <summary>
    /// Access routine for global variable.
    /// </summary>

    public static int Extrema
    {
        get
        {
            return _MaxMin;
        }
        set
        {
            _MaxMin = value;
        }
    }

    public static int Mutate
    {
        get
        {
            return _MutVal;
        }
        set
        {
            _MutVal = value;
        }

    }

    public static int ShowCal
    {
        get
        {
            return _CalShow;
        }
        set
        {
            _CalShow = value;
        }
    }

    public static int OutCal
    {
        get
        {
            return _CalOut;
        }
        set
        {
            _CalOut = value;
        }
    }
}

このテスト ステートメントを使用して数値を出力しようとすると、返される値が予期しないものになります。

        maxMin = GlobalVar.Extrema;
        calShow = GlobalVar.ShowCal;
        calOut = GlobalVar.OutCal;
        IsMutble = GlobalVar.Mutate;
        txtOutput.Text += Convert.ToString("\nMaxima Minima"+maxMin+"\n"+"Show Cal : "+calShow+"\n"+"Output Cal :"+calOut+"\n"+"Mutate : "+IsMutble+"\n---------\n");

チェックボックスをオン/オフにすると、値が更新されません。どこで間違ったのですか?

編集:未チェックのパラメータを追加することで解決しました。

4

2 に答える 2

1

おそらく、このようなイベントハンドラーを作成する必要があります

private void chkInMut_Checked(object sender, RoutedEventArgs e)
{
    GlobalVar.Mutate = (chkInMut.IsChecked ? 1 : 0);
}

等々 .....

于 2012-12-27T08:45:34.117 に答える