更改对象实例propertyChanged时,如果其任何属性发生更改

时间:2012-05-02 15:51:13

标签: wpf

我有一个简单的课程。我可以更改它的属性并得到通知。但是当我更改任何属性时,对象实例属性更改不会更改。如何更改对象实例属性更改以启用以下事件?

public class A : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    public int _id;
    public int Id
    {
        get { return _id; }
        set
        {
            if (_id == value)
            {
                return;
            }

            _id = value;
            OnPropertyChanged("Id"); 
        }
    }

    public string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            if (_name == value)
            {
                return;
            }

            _name = value; 
            OnPropertyChanged("Name"); 
        }
    }
}



foreach (INotifyPropertyChanged item in new ObservableCollection<A>() )
         item.PropertyChanged += new PropertyChangedEventHandler(Item_PropertyChanged);

    private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {

    }

1 个答案:

答案 0 :(得分:0)

ObservableCollection not noticing when Item in it changes (even with INotifyPropertyChanged)

这个问题在simon的回答2中提供了一个可能的解决方案。他继承自ObservableCollection并将集合事件处理程序挂钩到每个单独的PropertyChanged事件。