2010-01-12 6 views
1

Silverlight 3 컨트롤이 약한 이벤트 패턴을 사용하는지 알 수 있습니까? 그래서, 만약 내가 쓸 :약한 이벤트 패턴 Silverlight 3

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

또는

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

여기 ViewModel은 뷰 자체보다 훨씬 긴 싱글 톤입니다. 메모리 누수가 발생하거나 silverLight 3의 ListBox 및 Datagrid 컨트롤이 이미이 문제를 해결합니까?

또한, 무엇을 같은 내가 명시 적으로보기 생성자에 처리기를 추가 이벤트에 대한 :

MYVIEW() { 의 InitializeComponent(); MyView.ViewModel.OnPropertyChanged + = 새 PropertyChangedEventHandler (model_propertyChanged); }

약한 참조를 사용하는 간단한 방법이 있습니까? 작은 조정자 객체를 통해 약한 참조하여 필요한 경우뿐만 아니라

덕분 마니

답변

0

리스트 박스 및 데이터 그리드는 NotifyCollectionChanged로부터 핸들러를 분리한다. 따라서 가능한 한 메모리 누출은 매우 작으며 NotifyCollectionChanged가 실제로 실행될 때마다 완전히 제거됩니다.

자신이 수행하는 패턴은 Mediator 패턴을 사용하고 Mediator 객체가 관련 당사자 중 하나에 약한 참조를 보유하게하는 것입니다.