Utrata danej obiektu przy inicjalizacji winform

0

Witam,

Stworzyłem obiekt, który kolejno jest "przepuszczany" przez win-formy modyfikujące jego dane składowe.
W "win1" wartość x jest ustawiana na 1200, przycisk dalej wywołuje "win2"
W "win2" następuje powtórzenie pytania o x, żaden z buttonów nie jest wybrany jako "aktywny".

Inicjalizacja winform:

    public partial class win2 : Window
    {
        Data my_data;

        public game2(Data old_data)
        {
            this.my_data = old_data;
            int a = my_data.x;
            MessageBox.Show("enter2: " + my_data.x.ToString());
            
            InitializeComponent();

            MessageBox.Show("enter3: " + my_data.x.ToString());
            my_data.x = a;
         }

        private void radioButton1_Checked(object sender, RoutedEventArgs e)
        {
            my_game.x = 400;
        }

}

Resultat:
enter2: 1200
enter3: 400

Problem ominąłem stosując "bypass" zmiennej x za pomocą "a", ale nie jest to "chyba" eleganckie rozwiązanie.
Jak można rozwiązać ten problem inaczej?

0

Spróbuj przypisać my_data po InitializeComponents.

0

Wtedy wyskakuje komunikat błędu:
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu...

0

To przypisz zdarzenie Checked do radioButton w kodzie po InicjalizeComponent bo to chyba w tej metodzie jest wyzwalanie to zdarzenie, które ustawia Ci 400. Wstaw w Checked breakpponta i zobacz kiedy tam wlazł.

0

Rozwiązano:
Należy ustawić "Tab Index" radiobutton'ów na 0,
Przy inicjalizacji Winform wszystkie radiobuttony są ustawiane na non-checked.

1 użytkowników online, w tym zalogowanych: 0, gości: 1