0

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

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)
    {

    }
4

1 回答 1

0

ObservableCollection 没有注意到其中的项目何时更改(即使使用 INotifyPropertyChanged)

这个问题在 simon 的答案 2 中给出了一个可能的解决方案。他从 ObservableCollection 继承并将集合事件处理程序挂钩到每个项目的 PropertyChanged 事件。

于 2012-05-02T16:14:35.403 回答