![]() |
1
11
本质上,WPF控件本身与弱事件没有任何关系。相反,有些类与WPF的绑定引擎相关,它们实现弱事件模式。班级 PropertyChangedEventManager 实现VentManager。如果您使用Reflector,您将看到有几个类在MS.内部数据命名空间(特别是MS.内部数据.PropertyPathWorker类,它直接使用PropertyChangedEventManager)。WPF在内部使用这些对象来进行数据绑定。 ItemsControls和CollectionChanged事件是另一回事,与绑定无关。看,你可以这样做listView.ItemsSource文件=myObservableCollection”,并且集合更改通知仍然有效。这里根本不涉及绑定对象。在这里,一组不同的“弱事件相关类”正在发挥作用。 ItemCollection 和 ItemContainerGenerator 实现IWeakEventListener,它们与 CollectionChangedEventManager (实现VentManager)。 |
![]() |
2
2
您链接到的MSDN文章的第二句非常清楚地指出WPF确实使用弱事件模式。事实上,甚至可以说WPF 介绍
在做了一些研究之后,我认为这个问题的答案是“不”,我认为
原因
答案是“不”,因为WPF并不期望UI控件是暂时的。当有一个
我认为模式和用法是为ViewModel而不是视图构建的,视图更可能是临时的而不是视图。 编辑2:
|