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を継承し、コレクションのeventshandlerをすべてのアイテムのPropertyChangedイベントにフックします。

于 2012-05-02T16:14:35.403 に答える