Na głównej formie mam chekbox'a i chciałbym z innej klasy stworzonej jako odrębny plik zarządzać checked wspomianego checkbox'a. Tj. ustawiać True, False.
Przekaż tego Checkboxa przez konstruktor klasy. Taki Checkbox to obiekt typu referencyjnego więc zostanie skopiowana tylko referencja do niego, która będzie wskazywała na właściwy obiekt w pamięci. Będziesz mógł nim zarządzać z innej klasy.
Dziękuję za odpowiedź, lecz muszę zarazem powiedzieć, że na chwilę obecną, gdzie jestem na etapie nauki C# to co piszesz jest dla mnie trudne. Czy mógłbym poprosić o jakiś przykład?
Nie wiem czy w coś zrozumiesz z tego, bo brakuje Ci naprawdę podstaw jeżeli nie zrozumiałeś tego co napisałem. Ale ok:
Klasa, która przejmuje kontrolkę do zarządzania: (Zakładając, że klasa jest np. backendem do okna.)
public partial class NewWindow : Window {
private CheckBox _passedCheckBox;
// Domyślny konstruktor można wywalić jeżeli nie potrzebujesz go do niczego.
public NewWindow() {
InitializeComponent();
}
public NewWindow(CheckBox passedCheckBox){
InitializeComponent();
this._passedCheckBox = passedCheckBox;
}
}
Zaś żeby przekazać kontrolkę robisz po prostu:
var window = new NewWindow(this.CheckBoxToPass);
No i dziękuję bardzo. Wszystko ok. Rozumiem, że jak pokombinuje, to również jest do zrobienia przy pomocy klasy, która nie jest backendem do okna?
Dokładnie tak
Przekazywanie kontrolek bezpośrednio jest przykładem kodu spaghetti, który szybko zacznie boleć. Jakakolwiek zmiana kontrolki będzie wymagała niepotrzebnej zmiany klas zależnych.
Już lepiej zrobić w formatce z okienkiem właściwość, która opakuje tego checkboxa, dzięki czemu np. zmiana checkboxa na coś innego, albo dodanie kolejnych elementów, którymi będziesz chciał sterować z drugiej formatki, nie będzie wymagała zmiany konstruktora.
Chociaż to też nie jest idealne rozwiązanie, ale na razie powinno wystarczyć.