创建可绑定到可观察集合的依赖项属性的正确方法是什么?

时间:2010-10-04 13:32:28

标签: silverlight dependency-properties observablecollection

我需要在自定义控件上创建依赖项属性。问题是当集合发生更改时,不会调用propertyChangedCallback。我该如何正确处理这种情况?

我担心在初始属性更改期间(将可观察集合分配给依赖项属性时)只是事件挂钩到CollectionChanged事件导致的内存泄漏。

换句话说,我需要创建另一个属性,如ItemsControl.ItemsSource。

我使用Reflector查看了ItemsControl.ItemsSource的源代码。在内部,它使用WeakCollectionChangedListener,它是内部类。我可能可以复制它的来源并使用它,但我相信必须有另一个(更好的)解决方案。

1 个答案:

答案 0 :(得分:0)

在Delay的Blog上有一个关于在Silverlight中实现WeakEvent模式的好in-depth post用于这个确切的场景(更改实现INotifyCollectionChanged的集合源)。

他也为WeakEventListener实现提供代码。

相关问题