2016-08-03 16 views
1

Ich muss einen Wert in meinem Fenster anzeigen, der sich ändert, wenn eine Funktion aufgerufen wird. Beim Lesen bin ich mir bewusst, dass ich dazu den INotifyPropertyChanged implementieren muss.INotifyPropertyChanged und statische Variablen

Mein Problem ist, dass ich die Variable, die diesen Wert hält, statisch sein muss, damit sie von anderen Funktionen geändert werden kann.

Hier ist meine Implementierung:

class Shown : INotifyPropertyChanged 
{ 
    private int _Count; 
    public int Count 
    { 
     get { return _Count; } 
     set 
     { 
      if (value != _Count) 
      { 
       _Count = value; 
       OnPropertyChanged("Count"); 
      } 
     } 
    } 
    public event PropertyChangedEventHandler PropertyChanged; 
    public void OnPropertyChanged(string propName) 
    { 
     if (PropertyChanged != null) 
      PropertyChanged(this, new PropertyChangedEventArgs(propName)); 
    } 
} 

Hier ist, was ich mit der Schnittstelle möglich sein möchte umgesetzt:

Shown.Count += SomeVariable; 

Dann wird der geänderte Wert im Textblock zu aktualisieren, die zu binded sind .

Ich weiß meine Beschreibung des Problems ist ... wollen, aber ich bin selbst ratlos.

+0

Wo haben Sie es als statisch definiert? –

+0

Die ursprüngliche Klasse vor der Implementierung war: Klasse gezeigt {public static int Count} – Balgy

+0

Jetzt können Sie nicht auf 'Shown.Count' zugreifen, Sie benötigten eine Instanz, um sie als statisch zu machen –

Antwort

0

Haben Sie darüber nachgedacht, dass eine Instanz der Klasse "Shown" statisch verfügbar ist, anstatt dass diese Eigenschaft statisch verfügbar ist? Auf diese Weise können Sie auf die Count-Eigenschaft für die gesamte Anwendung zugreifen, vorausgesetzt, Sie benötigen nur eine Instanz von Shown.