Bindung statische Eigenschaft und die Implementierung von INotifyPropertyChanged

Ich bin versucht zu binden eine statische Eigenschaft einer Klasse, um eine gewisse Kontrolle. Ich habe tryied ein paar Umsetzung, aber jeder hat seine problem:

Alle Beispiele verwenden die nächsten XAML:

 <Label Name="label1" Content="{Binding Path=text}"/>  

1. Ansatz - keine Verwendung von INotifyPropertyChanged

public class foo1
{
    public static string text { get; set; }
}

Das problem ist, dass, wenn 'text' Anwesen änderungen der Steuerung wird nicht benachrichtigt.

Zweite Ansatz - die Verwendung von INotifyPropertyChanged

public class foo1 : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    private static string _text;
    public static string text
    {
        get { return _text; }
        set
        {
            _text = value;
            OnPropertyChanged("text");
        }
    }
}

Diese nicht kompilieren, da OnPropertyChanged () - Methode ist nicht statisch und es heißt, die innerhalb einer statischen Methode.

Zweiten Ansatz versuchen 2: OnPropertyChanged () - Methode static => dies kann nicht kompiliert werden, weil OnPropertyChanged() ist nun statisch und es wird versucht, "PropertyChanged" - Veranstaltung, die nicht statisch ist.

Zweiten Ansatz versuchen 3: "PropertyChanged" - Veranstaltung static => das nicht kompilieren, da die Klasse nicht implementiert 'INotifyPropertyChanged.PropertyChanged-event (der event ist definiert in 'INotifyPropertyChanged-Schnittstelle ist nicht statisch, sondern hier ist es statisch).

In diesem Punkt gab ich auf.

Irgendwelche Ideen?

InformationsquelleAutor dana | 2011-01-13

Schreibe einen Kommentar