假设我有一个UserControl
与 aDependencyProperty
绑定到一个ObservableCollection<Foo>
对象。对象集合Foo
实际上是发送到某个 Flash ActiveX 对象。因此,我不能“WPF 绑定”到 Foo 对象的属性。
当 Foo 对象的属性由 UserControl 以外的其他对象更新时,我希望通知 UserControl 以便它刷新(即将所有 Foo 对象重新发送到 Flash 对象)。
我不太确定如何处理这个问题。我可以想到两种不太明显的可能性:
UserControl 订阅包含该
ObservableCollection<Foo>
对象的对象的某些事件。每当 Foo 对象的属性发生更改时,该事件就会触发,因此 UserControl 会知道将 Foo 对象重新发送到 Flash 对象。让 UserControl 订阅
CollectionChanged
ObservableCOllection 对象的事件,以某种方式导致ObservableCOllection<Foo>
对象引发事件Action
NotifyCollectionChangedAction.Reset
。void OnFooCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (!_flashIsLoaded) return; if (e.Action == NotifyCollectionChangedAction.Reset) { ClearAndSendFoos(this, Foos); return; } ....
知道如何完成上述两项工作,或者如何让 UserControl 知道是时候刷新集合了吗?