Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
弱事件模式Silverlight 3_Silverlight - Fatal编程技术网

弱事件模式Silverlight 3

弱事件模式Silverlight 3,silverlight,Silverlight,有人能告诉我silverlight 3控件是否使用弱事件模式吗。因此,如果我写: myView.Listbox1.ItemSource=myView.ViewModel.SomeObservableCollection 或 MyView.DataGrid1.ItemSource=MyView.ViewModel.SomeOtherObservableCollection 这里的ViewModel是一个比视图本身寿命长得多的单例,我会不会内存泄漏,或者silverLight 3中的ListBox和

有人能告诉我silverlight 3控件是否使用弱事件模式吗。因此,如果我写:

myView.Listbox1.ItemSource=myView.ViewModel.SomeObservableCollection

MyView.DataGrid1.ItemSource=MyView.ViewModel.SomeOtherObservableCollection

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

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

MyView() { 初始化组件(); MyView.ViewModel.OnPropertyChanged+=新的PropertyChangedEventHandler(model\U propertyChanged); }

这里有没有一种简单的使用弱引用的方法

谢谢,
必要时,Manish

列表框和DataGrid将从
NotifyCollectionChanged
分离处理程序,并通过小型中介对象使用弱引用。因此,内存泄漏虽然可能很小,但在实际触发NotifyCollectionChanged时会完全消除

您自己这样做的模式是使用中介模式,让中介对象持有对所涉及的一方的弱引用