Wie kann ich Code ausführen, wenn sich der Wert einer Variablen in C # ändert?

7

Ich möchte die Sichtbarkeit einer Schaltfläche ändern, wenn sich der Wert einer bestimmten Variablen ändert. Gibt es eine Möglichkeit, eine Art Delegat an eine Variable anzuhängen, die automatisch ausgeführt wird, wenn sich der Wert ändert?

    
Rohit 16.07.2009, 10:05
quelle

5 Antworten

18

Nein, Sie können den Zuweisungsoperator in C # nicht überladen. Das Beste, was Sie tun können, ist, die Variable in eine Eigenschaft zu ändern und eine Methode aufzurufen oder ein Ereignis zu delegieren oder zu erhöhen.

%Vor%

Dies wird von vielen Frameworks (wie WPF DependencyProperty system) durchgeführt, um Eigenschaftenänderungen zu verfolgen.

    
Mehrdad Afshari 16.07.2009, 10:07
quelle
3

Verwenden Sie Beobachtermuster . Hier ist eine weitere Referenz .

    
this. __curious_geek 16.07.2009 10:24
quelle
2

Sie können auch die Datenbindung verwenden: in WPF , in Windows Forms . Auf diese Weise können Sie den Status der GUI abhängig von den Eigenschaften der Objekte und umgekehrt ändern.

    
Alexey Romanov 16.07.2009 11:30
quelle
1

Es gibt keine Möglichkeit, das zu tun. Variablen sind im Grunde nur Orte im Speicher, an die Ihre Anwendung schreibt.

Verwenden Sie stattdessen eine Eigenschaft:

%Vor%     
weiqure 16.07.2009 10:10
quelle
0

Sie haben entweder einen Verweis auf die GUI in Ihrem Modell (wo die Variable ist) und führen Sie die GUI-Änderung direkt in der Setter-Methode aus, oder Sie lassen Ihre GUI Ihr Modell über einen Beobachter beobachten und die beobachtbaren Modellfeuerereignisse haben zu den Beobachtern in den Settern. Ersteres wird schließlich zu Spaghetti-Code führen, da Sie mehr und mehr direkte Verknüpfungen zwischen Modell und Ansicht hinzufügen und daher nur für interne Tools und einfache Programme verwendet werden sollten.

    
JeeBee 16.07.2009 10:13
quelle

Tags und Links