2
안녕하세요, 저는이 작업을 수행하는 몇 가지 방법을 시도했지만 성공하지 못했거나 이상적이지 않았습니다. 간단히 컬렉션에있는 항목의 PropertyChanged 이벤트를 catch하고 싶습니다. 나는 순간 에서 수동으로 최대 유선하지만 더 우아한 해결책이 궁금 오전 :WPF ObservableCollection의 아이템 속성이 변경되었습니다.
이public class Item : INotifyPropertyChanged
{
...
public delegate void MyPropertyChangedHandler(object sender, PropertyChangedEventArgs e);
public event MyPropertyChangedHandler MyPropertyChanged;
public event PropertyChangedEventHandler PropertyChanged = delegate { };
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventArgs args = new PropertyChangedEventArgs(propertyName);
PropertyChanged(this, args);
if (MyPropertyChanged != null) MyPropertyChanged(this, args);
}
...
}
public class ItemCollection : ObservableCollection<Item>
{
...
public delegate void MyPropertyChangedHandler(object sender, PropertyChangedEventArgs e);
public event MyPropertyChangedHandler MyPropertyChanged;
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (Item item in e.NewItems)
{
item.MyPropertyChanged += new Item.MyPropertyChangedHandler(item_MyPropertyChanged);
}
}
base.OnCollectionChanged(e);
}
void item_MyPropertyChanged(object sender, PropertyChangedEventArgs e)
{
MyPropertyChanged(sender, e);
}
...
}
가 그럼 난 쉽게 컬렉션의 MyPropertyChanged 이벤트에 첨부 할 수 있으며, 그것은 잘하지만, 더 우아한 사람을 작동? 사전
감사합니다. 좋은 전화 –
@infensus 기꺼이 도와 드리겠습니다. –