Dostęp do pól obiektu z innego obiektu

Dostęp do pól obiektu z innego obiektu
UA
  • Rejestracja:ponad 15 lat
  • Ostatnio:5 miesięcy
0

Witam, jak zrobić następującą rzecz mam jedno okienko główne które będzie cały czas otwarte. Teraz chciałbym klikając w jakiś przycisk otworzyć nowe okno ale tak aby w oknie2 był dostęp do pewnego obiektu utworzonego w oknie1. Jak to zrobić ?

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Najprościej: przekaż go konstruktorem. Klasa jest typem referencyjnym więc będziesz operować na oryginalnym obiekcie.

Wedle prostego przykładu:

Kopiuj
    class C1
    {
        public string Name { get; set; } = "C1";
    }

    class C2
    {
        public C2(C1 c1)
        {
            c1.Name = "Changed";
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var c1 = new C1();
            var c2 = new C2(c1);
            Console.WriteLine(c1.Name);
        }
    }
edytowany 1x, ostatnio: grzesiek51114
UA
  • Rejestracja:ponad 15 lat
  • Ostatnio:5 miesięcy
0

ok, obawiam się że tych okien będzie więcej, gdzieś wyczytałem że można by zastosować singleton. Okna będą się otwierały jedno z drugiego i trzeba by było non stop przekazywać to w konstruktorze.

edytowany 1x, ostatnio: usm_auriga
W2
  • Rejestracja:ponad 19 lat
  • Ostatnio:30 dni
0

Bardzo źle kombinujesz. Okno to tylko narzędzie prezentacji. Jeśli z jakiegoś pwoodu okno B ma mieć dostęp do okna A to zakładam że ma się za tym kryć jakaś logika.
Pomyśl o tym bardziej w ten sposób:
Okno A <-------------------> (Logika i Dane) <------------------> Okno B
Zakładam żę konieczność zmiany czegoś w oknie A przez okno B wynika ze zmiany jakiejś wartości, zatem:

  1. Logika i/lub dane dane to osobna klasa utworzona poza oknem. Tak jak napisałeś wcześniej może być singletonem.
  2. Okna to osobne klasy okien
  3. Okno A i okno B pobiera dane z klasy Logiki i potrafi reagować na zmiany w tej klasie. Tak samo zmiany w oknie A i B powinny odzwierciedlać się w klasie logiki

Mała uwaga: Pisząc o konieczności zmainy czegoś w klasie mam na myśli zmianę czegos w obiekcie klasy (tak dla formalności, nie chce mi się poprawia skrótu myślowego :-) )

UA
  • Rejestracja:ponad 15 lat
  • Ostatnio:5 miesięcy
0

ok, to brzmi sensownie, spróbuję tak zrobić.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.