C# 可观察收集<&燃气轮机;集合已更改,但未启动

C# 可观察收集<&燃气轮机;集合已更改,但未启动,c#,wpf,mvvm,C#,Wpf,Mvvm,我在WPF应用程序中有一个datagrid,它绑定到一个ObservableCollection,如下所示 <DataGrid ItemsSource="{Binding Spring.SpringData, Mode=OneWay}" /> INotifyCollectionChanged仅在实际修改集合时激发。这是指在集合中添加、删除、移动、替换或重置项目。当SpringData对象中的一个属性发生更改时,它不会激发 为了监听SpringData对象的更改,假设它实现了INot

我在WPF应用程序中有一个datagrid,它绑定到一个ObservableCollection,如下所示

<DataGrid ItemsSource="{Binding Spring.SpringData, Mode=OneWay}" />

INotifyCollectionChanged
仅在实际修改集合时激发。这是指在集合中添加、删除、移动、替换或重置项目。当
SpringData
对象中的一个属性发生更改时,它不会激发


为了监听SpringData对象的更改,假设它实现了
INotifyPropertyChanged
,您需要将侦听器连接到每个项的
PropertyChanged
事件。

INotifyCollectionChanged
仅在实际修改集合时才会触发。这是指在集合中添加、删除、移动、替换或重置项目。当
SpringData
对象中的一个属性发生更改时,它不会激发


为了监听SpringData对象的更改,假设它实现了
INotifyPropertyChanged
,您需要将侦听器连接到每个项的
PropertyChanged
事件。

对于有时更改的所有属性,使用单个处理程序非常有用。这是你可以做到的

句柄集合已更改,如上所述:

_SpringData = new ObservableCollection<SpringData>();
SpringData.CollectionChanged += PublishSpringChange;

为所有属性提供一个单独的处理程序是非常有用的,有时会发生更改。这是你可以做到的

句柄集合已更改,如上所述:

_SpringData = new ObservableCollection<SpringData>();
SpringData.CollectionChanged += PublishSpringChange;

有没有一种方法可以使INotifyCollectionChanged从SpringData中的事件中跳闸?有没有什么特殊的原因可以解释为什么要这样做?只从项中通知集合已更改的事件比让每个项单独处理事件更简单、更健壮。有没有一种方法可以使INotifyCollectionChanged跳闸从SpringData中的一个事件中?您想这样做有什么特别的原因吗?只从项中通知集合更改事件比让每个项单独处理事件更简单、更健壮。
_SpringData = new ObservableCollection<SpringData>();
SpringData.CollectionChanged += PublishSpringChange;
private void PublishSpringChange(object sender, NotifyCollectionChangedEventArgs e)
{
    foreach (INotifyPropertyChanged added in e.NewItems)
    {
        added.PropertyChanged += SpringDataOnPropertyChanged;
    }

    foreach (INotifyPropertyChanged removed in e.OldItems)
    {
        removed.PropertyChanged -= SpringDataOnPropertyChanged;
    }
}

private SpringDataOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
    //your code here
}