Witam.
W XAMLu mam w taki sposób zdefiniowaną pierwszą linijkę z moją siatką
<Grid x:Name="grid" ........
następnie muszę z poziomu kodu dodawać przyciski, czyli programistycznie. W kodzie nie tworzę czegoś typu Grid grid = new Grid().
Po prostu dając w XAMLu to co wkleiłem powyżej mam dostęp do mojego grid.Pierwsza funkcja, której używam aby dodać przycisk do grida wygląda mniej więcej tak:
void set_checker()
{
round_table[i, j] = warcab.create_warcab(i, j, 2); // tablica przechowuje przyciski, które się tworzą z pewnymi parametrami
grid.Children.Add(round_table[i, j]);
}
I ta funkcja działa prawidłowo. Problem pojawia się dalej. Po wyjściu z tej funkcji, w późniejszym używaniu programu muszę znowu dodać przycisk do tablicy a potem do grida.
public void swap()
{
round_table[i_position, j_position] = warcab.create_warcab(i_position, j_position, p11);
grid.Children.Add(round_table[i_position, j_position]);
}
Kompilacja przebiega bez problemu, ale w trakcie działania programu dostaje exception:
System.NullReferenceException: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.”
grid było null.
Wniosek taki, że grid po zakończeniu działania pierwszej funkcji nie jest globalny i usuwa się. Czy się mylę ? Jak to naprawić lub przekazać grida z jednej funkcji do drugiej ?