【问题标题】:weak event pattern Silverlight 3弱事件模式 Silverlight 3
【发布时间】:2010-01-12 10:02:19
【问题描述】:

谁能告诉我silverlight 3 控件是否使用弱事件模式。所以,如果我写:

myView.Listbox1.ItemSource = MyView.ViewModel.SomeObservableCollection;

MyView.DataGrid1.ItemSource = MyView.ViewModel.SomeOtherObservableCollection;

这里的 ViewModel 是一个比视图本身寿命长得多的单例,我会遇到内存泄漏还是 silverLight 3 中的 ListBox 和 Datagrid 控件已经解决了这个问题?

另外,对于我在视图构造函数中显式添加处理程序的事件,例如:

我的视图() { 初始化组件(); MyView.ViewModel.OnPropertyChanged += new PropertyChangedEventHandler(model_propertyChanged); }

这里有使用弱引用的简单方法吗?

谢谢, 马尼什

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    ListBox 和 DataGrid 将在必要时从NotifyCollectionChanged 中分离一个处理程序,并通过一个小的中介对象使用弱引用。因此,内存泄漏虽然可能非常小,并且在 NotifyCollectionChanged 实际触发时完全消除。

    自己执行此操作的模式是使用 Mediator 模式并让 Mediator 对象持有对相关方之一的弱引用。

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多