INotifyPropertyChanged und statische Eigenschaften

Ich bin binden mich in Knoten über ein einfaches problem. Ich habe eine Klasse, die INotifyPropertyChanged. Einige der Instanz-Eigenschaften' Getter verwenden Sie statische Eigenschaften und damit auch Ihre Werte ändern kann, wenn die statische Eigenschaft ändert? Hier ist ein Vereinfachtes Beispiel.

class ExampleClass : INotifyPropertyChanged
{

    private static int _MinimumLength = 5;
    public static int MinimumLength
    {
        get
        {
            return _MinimumLength;
        }
        set
        {
            if (_MinimumLength != value)
            {
                _MinimumLength = value;
                //WHAT GOES HERE
            }
        }
    }

    private int _length = -1;
    public int length
    {
        get
        {
            return (_length > _MinimumLength) ? _length : _MinimumLength;
        }
        set
        {
            var oldValue = (_length > _MinimumLength) ? _length : _MinimumLength;
            if (_length != value)
            {
                _length = value;
                var newValue = (_length > _MinimumLength) ? _length : _MinimumLength;
                if (newValue != oldValue)
                {
                    OnPropertyChanged("length");
                }
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

}

Klar, wenn die statische Eigenschaft MinimumLength änderungen, die dann jede Instanz der Eigenschaft length können sich auch ändern. Aber wie sollte der statische Konstanteneigenschaft signal das mögliche änderung der Instanzen? Es kann nicht rufen OnPropertyChanged da, dass ist nicht statisch.

Ich könnte eine Liste in der Klasse alle Instanzen und rufen Sie eine Methode auf jeden, aber irgendwie fühlt sich das wie overkill. Oder ich könnte ziehen Sie die statischen Eigenschaften, die sich in einer singleton-Klasse, aber logisch, Sie Leben in der Klasse. Gibt es ein etabliertes Muster für diese oder sollte ich mir Gedanken über das anders?

InformationsquelleAutor der Frage dumbledad | 2013-01-30

Schreibe einen Kommentar