假设我想创建一个附加属性,将对象引用列表附加到视图实例(DependencyObject / FrameworkElement)...
它何时释放所有这些引用?如果它们实现了Dispose,它会在附加属性值上调用Dispose吗?
假设我想创建一个附加属性,将对象引用列表附加到视图实例(DependencyObject / FrameworkElement)...
它何时释放所有这些引用?如果它们实现了Dispose,它会在附加属性值上调用Dispose吗?
FrameworkElement
正在卸载时,它不应该对其值字典中持有的任何引用调用Dispose
,原因有很多,主要是它不能知道自己是否有责任这样做。将依赖属性视为DependencyObjects中的键值对。当您将值分配给附加的依赖属性(或常规依赖属性)时,该值会放入字典中。这意味着当视图本身被垃圾回收器回收时,列表中的项目也将被回收。Dispose行为也很正常。