【问题标题】:What is the proper way to create a dependency property bindable to an observable collection?创建可绑定到可观察集合的依赖属性的正确方法是什么?
【发布时间】:2010-10-04 13:32:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: silverlight dependency-properties observablecollection


    【解决方案1】:

    Delay 的博客上有一个很好的 in-depth post,关于在 Silverlight 中针对这种确切场景实现 WeakEvent 模式(更改实现 INotifyCollectionChanged 的​​集合源)。

    他还提供了 WeakEventListener 实现的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 2021-11-22
      • 2022-01-20
      相关资源
      最近更新 更多