C# 使用INotifyPropertyChanged的静态属性。C

C# 使用INotifyPropertyChanged的静态属性。C,c#,wpf,C#,Wpf,我正在尝试创建一个静态属性,INotifyPropertyChanged将更新对绑定到的DataGrid组合框所做的任何更改 我得到了这个错误 错误CS0026关键字“this”在静态属性static中无效 方法,或静态字段 通过我的搜索,我发现了这一点,但即使在经历了一切之后,我仍然不知道如何让这一点发挥作用 但是,我所更改的任何内容都只能否定我正在尝试使用INotifyPropertyChanged创建静态属性 我的代码: private static List<string>

我正在尝试创建一个静态属性,INotifyPropertyChanged将更新对绑定到的DataGrid组合框所做的任何更改

我得到了这个错误

错误CS0026关键字“this”在静态属性static中无效 方法,或静态字段

通过我的搜索,我发现了这一点,但即使在经历了一切之后,我仍然不知道如何让这一点发挥作用

但是,我所更改的任何内容都只能否定我正在尝试使用INotifyPropertyChanged创建静态属性

我的代码:

private static List<string> _nursingHomeSectionListProperty;

public static List<string> NursingHomeSectionListProperty
{
    get { return _nursingHomeSectionListProperty; }
    set
    {
       _nursingHomeSectionListProperty = value;
       NotifyStaticPropertyChanged();
    }
}
下面的代码是如何对非静态属性使用属性更改处理程序

public event PropertyChangedEventHandler PropertyChanged;

public void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
   {
       PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
   }
只需传递null,而不是此值:

有关静态属性更改通知的详细信息,请参阅。

只需传递null,而不是此:


有关静态属性更改通知的详细信息,请参阅。

我不明白为什么在模型中需要静态属性,但调用的第一个参数是发送方。一个简单的新对象也将完成,为什么要使用委托。调用并命名您的raise方法Notify。。。而不是在?Sefe上,因为?。操作人员方法的名称不相关。请不要使用?。在这些情况下。诉诸Invoke是对这个操作符的过度使用。@Sefe我想你不知道是什么?。是正在写入PropertyChanged?.Invoke。。。是当前最新的编写方法。你应该像这样做。我不明白为什么你的模型中需要静态属性,但是调用的第一个参数是发送方。一个简单的新对象也将完成,为什么要使用委托。调用并命名您的raise方法Notify。。。而不是在?Sefe上,因为?。操作人员方法的名称不相关。请不要使用?。在这些情况下。诉诸Invoke是对这个操作符的过度使用。@Sefe我想你不知道是什么?。是正在写入PropertyChanged?.Invoke。。。是当前最新的编写方法。你应该像这样做。谢谢你的链接,这对我帮助很大。好的,我有一个问题,你的链接没有显示如何使用静态成员StaticPropertyChanged。这会在XAML中抛出一个错误,表示无法解决该问题。不幸的是,链接没有涉及到这一点,有什么想法吗?不知道你的意思。这篇文章还展示了如何绑定到静态属性。可能会问一个新的StackOverflow问题并提供错误的详细信息。对不起,我的意思是在链接中它显示了两种更改通知的方法,它只显示了如何绑定第一种方法来绑定静态属性。我使用的是第二种方法,从我能告诉你的情况来看,这个链接并没有说明如何做到这一点。还是我遗漏了什么?CheersIt只是实现静态属性更改通知的两种方法。绑定到这样一个静态属性对两者都是一样的。同样感谢链接,这对我帮助很大。好的,我有一个问题,您的链接没有显示如何使用静态成员StaticPropertyChanged。这会在XAML中抛出一个错误,表示无法解决该问题。不幸的是,链接没有涉及到这一点,有什么想法吗?不知道你的意思。这篇文章还展示了如何绑定到静态属性。可能会问一个新的StackOverflow问题并提供错误的详细信息。对不起,我的意思是在链接中它显示了两种更改通知的方法,它只显示了如何绑定第一种方法来绑定静态属性。我使用的是第二种方法,从我能告诉你的情况来看,这个链接并没有说明如何做到这一点。还是我遗漏了什么?CheersIt只是实现静态属性更改通知的两种方法。对这两个静态属性的绑定是相同的。
public event PropertyChangedEventHandler PropertyChanged;

public void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
   {
       PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
   }
public static event PropertyChangedEventHandler StaticPropertyChanged;

private static void NotifyStaticPropertyChanged([CallerMemberName] string name = null)
{
    StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(name));
}