Static property using INotifyPropertyChanged. C#
I am trying create a static property where INotifyPropertyChanged
will update any changes made to a DataGrid
ComboBox
that I am binding to.
I am getting this error,
Error CS0026 Keyword 'this' is not valid in a static property, static method, or static field
Through my searches I came upon this Why can't you use the keyword 'this' in a static method in .Net?, but even after going through everything I still can't figure out how to get this to work.
But, anything I change only negates that I am trying to make a static property with INotifyPropertyChanged
???
My code:
private static List<string> _nursingHomeSectionListProperty;
public static List<string> NursingHomeSectionListProperty
{
get { return _nursingHomeSectionListProperty; }
set
{
_nursingHomeSectionListProperty = value;
NotifyStaticPropertyChanged();
}
}
And Property changed handler
public static event PropertyChangedEventHandler StaticPropertyChanged;
public static void NotifyStaticPropertyChanged([CallerMemberName] string propertyName = null)
{
StaticPropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
And the below code is how I am using the property changed handler for non static properties,
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
Just pass null
instead of this
:
public static event PropertyChangedEventHandler StaticPropertyChanged;
private static void NotifyStaticPropertyChanged([CallerMemberName] string name = null)
{
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(name));
}
See this blog post for details about static property change notification.