• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak przesłać wartości bool z jednego okna WPF do drugiego.

VPS Starter Arubacloud
0 głosów
442 wizyt
pytanie zadane 8 grudnia 2018 w C# przez Dany90 Nowicjusz (170 p.)

Cześć.

Tworzę prostą grę kółko i krzyżyk z wykorzystanie WPF.

Być może problem mam trywialny, a nie mogę go rozwiązać od paru dni.

Otóż w mojej aplikacji po naciśnięciu button'a Menu otwiera się nowe drugie okno i w tym oknie za pomocą RadioButton chciałbym zmienić opcje, które powodowałoby zmianę rozpoczęcia gry z kółka na krzyżyk w pierwszym oknie.

Inaczej mówiąc jak przesłać zmienną o typie bool z jednego okna do drugiego?

Próbowałem:

Menu.xaml.cs

 public static bool IsCross = true;

 public void player_2_cross_Checked(object sender, RoutedEventArgs e)
        {

            this.player_1_cross.IsChecked = false;

            IsCross = (bool)this.player_1_cross.IsChecked;

       }

 

W oknie  MainMenu próbuje odwołać się Menu.IsCross wartość nie podlega zmianie, wartość bool przyjmują taką z jaką została zainicjalizowana.

komentarz 8 grudnia 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Stwórz klasę bazową z metodami odbierania i wysyłania wiadomości po której będą dziedziczyć inne klasy. Wszystkie instancje przechowuj w jakiejś klasie i w niej obsługuj wysyłanie wiadomości.
komentarz 9 grudnia 2018 przez Dany90 Nowicjusz (170 p.)
Dzięki za odpowiedź.

Niestety nie do końca rozumiem jak mam to zrobić. Potrzebowałbym więcej szczegółów

Jak mam stworzyć klasę bazową w WPF, gdy klasą bazową do funkcjonowania musi być klasa Window?
komentarz 9 grudnia 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Nie do końca o to mi chodziło. Możesz np. stworzyć interfejs w którym będziesz miał metody wysyłania i odbierania wiadomości. I wszystkie te klasy, które implementują interfejs trzymasz w jednej klasie, która nimi zarządza. Możesz zastosować do tego celu tzw. Mediator. Poczytaj też o flow w MVVM, możesz też użyć np. Messengera.
komentarz 10 grudnia 2018 przez Siemił Mądrala (7,380 p.)
edycja 10 grudnia 2018 przez Siemił

Cześć, masz dialogowe okno (otwierasz je jako showdialog())? Jeśli tak to zmienną możesz przekazać podczas zamykania do właściwości 'Tag' okna. potem w metodzie w której otwierasz okno badasz czy masz coś w tagu i rzutujesz na bool. Jeśli okno nie jest dialogowe to przekazać boola musisz za pomocą zdarzenia, co wymaga trochę więcej pracy.

Tutaj masz przykład jak przekazać obiekt z okna do okna głównego.

komentarz 19 grudnia 2018 przez Dany90 Nowicjusz (170 p.)
Dzięki.

Na razie odszedłem od WPF. Jak wrócę do niego to sprawdzę.

1 odpowiedź

0 głosów
odpowiedź 7 stycznia 2019 przez Rout Bywalec (2,350 p.)

Poczytaj sobie o Event Aggregator. W skrócie polega to na rozgłaszaniu wiadomości przez publishera i nasłuchiwaniu przez subscriberów. W twoim przypadku jedno okno wysyła wiadomość drugie nasłuchuje.

Podobne pytania

0 głosów
1 odpowiedź 446 wizyt
pytanie zadane 21 kwietnia 2017 w C# przez BlackMoon Obywatel (1,730 p.)
0 głosów
0 odpowiedzi 123 wizyt
0 głosów
0 odpowiedzi 362 wizyt
pytanie zadane 16 kwietnia 2019 w C# przez marcinconn Obywatel (1,560 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...