Liaison statique de la propriété et de la mise en œuvre de INotifyPropertyChanged

Je suis en train de lier une propriété statique de la classe à un certain contrôle. J'ai tryied un peu de mise en oeuvre, mais chacun a son problème:

Tous les exemples utilisent la prochaine XAML:

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

1ère approche - ne pas utiliser de INotifyPropertyChanged

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

Le problème est que lorsque 'texte' propery changements de contrôle n'est pas averti.

Deuxième approche consiste à utiliser 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");
        }
    }
}

Cela ne veut pas compiler, car OnPropertyChanged() la méthode n'est pas statique et qu'il est appelé à l'intérieur d'une méthode statique.

Deuxième approche essayez 2: faire OnPropertyChanged() la méthode statique => cela ne veut pas compiler, car OnPropertyChanged() est statique et est maintenant, il essaie d'utiliser 'PropertyChanged' événement qui n'est pas statique.

Deuxième approche essayez 3: faire de "PropertyChanged' événement statique => cela ne veut pas compiler, car la classe n'implémente pas 'INotifyPropertyChanged.PropertyChanged de l'événement (l'événement est défini dans 'interface INotifyPropertyChanged est pas statique, mais ici, il est statique).

À ce point, j'ai renoncé.

Des Idées?

OriginalL'auteur dana | 2011-01-13