Ich versuche eine statische Eigenschaft zu erstellen, wobei INotifyPropertyChanged
alle Änderungen an einem DataGrid
ComboBox
, an den ich bin, zu aktualisieren.Statische Eigenschaft mit INotifyPropertyChanged. C#
ich diese Störung erhalte,
Fehler CS0026 Schlüsselwort 'this' nicht gültig in einer statischen Eigenschaft ist, statische Methode oder statisches Feld
Durch meine Suche stieß ich auf diesem Why can't you use the keyword 'this' in a static method in .Net?, aber selbst nachdem ich alles durchgegangen bin, kann ich immer noch nicht herausfinden, wie ich das zur Arbeit bringen soll.
Aber alles, was ich ändern negiert nur, dass ich versuche, eine statische Eigenschaft mit INotifyPropertyChanged
???
Mein Code:
private static List<string> _nursingHomeSectionListProperty;
public static List<string> NursingHomeSectionListProperty
{
get { return _nursingHomeSectionListProperty; }
set
{
_nursingHomeSectionListProperty = value;
NotifyStaticPropertyChanged();
}
}
und Eigentum geändert Handler
public static event PropertyChangedEventHandler StaticPropertyChanged;
public static void NotifyStaticPropertyChanged([CallerMemberName] string propertyName = null)
{
StaticPropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
Und der Code unten ist, wie ich die Eigenschaft veränderte Handler für nicht statische Eigenschaften verwenden,
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
Ich verstehe nicht, warum Sie statische Eigenschaft in Ihrem Modell benötigen, aber das erste Argument der "Invoke" ist der Absender. und ein einfaches 'neues Objekt()' wird – Alex
Auch warum verwenden Sie Delegat. Rufen Sie Ihre Raise-Methode auf und nennen Sie sie Notify ... und nicht On? – Sefe
@Sefe Wegen des '? .' Operators. Der Name der Methode ist irrelevant. – Clemens