0
私は単純なクラスを持っています。私はそのプロパティを変更して通知を受けることができます。変更されたオブジェクトインスタンスのプロパティは変更されません。どのようにオブジェクトインスタンスのプロパティを変更して、下のイベントを発生させることができますか?プロパティのプロパティが変更されたときに、オブジェクトインスタンスpropertyChangedを変更します。
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)
{
}
"変更されたオブジェクトインスタンスのプロパティは、そのプロパティのいずれかを変更しても変更されません"という意味を正確にはわかりません。あなたの目標についてもう少し詳しく教えてください。 publicイベントPropertyChangedEventHandler PropertyChangedは、OnPropertyChanged( "propertyName")メソッドで発生させるイベントです。 – csteinmueller
私はオブジェクトAのコレクションを持っています。私のコレクションには通知コレクションの変更イベントハンドラがあります。コレクションアイテムのプロパティが変更されると、イベントが発生します。問題は、アイテム(A)のプロパティ(IDまたは名前)を変更してアイテム(A)のPropertyChangedを変更しないためにイベントが発生しないことです。 –
'new ObservableCollection ()'には 'A'項目がありません –