Jeżeli chcesz obserwować tego labela i aktualizować jego tekst z różnych klas, w zależności od tego co te klasy robią, to możesz wykorzystać do tego interfejsy IObserver<T>
oraz IObservable<T>
.
Pierwszy z tych interfejsów implementujesz w klasie, która przechowuje Label
. ta klasa będzie obserwować obiekty typu string
w klasach, które implementują interfejs IObservable<string>
Do zmian statusu posłuży Ci metoda OnNext
z interfesu IObserver<string>
:
public void OnNext(string value)
{
this.MyLabel.Text = value;
}
Natomiast każda klasa, która ma zmienić status będzie musiała wywołać tę metodę u siebie kiedy zajdzie taka potrzeba np:
string status = "Hey! Status Changed!";
foreach(var observer in this.Observers) observer.OnNext(status);
// Gdzie this.Observers to List<IObserver<string>>
Oczywiście zamiast listy obserwatorów możesz zrobić tylko jednego - powyżej jest tylko przykład.
Więcej doczytaj sobie z MSDN i z googla wpisując nazwy tych interfejsów, bo artykułów o tym jest masa.