wp8.1의 범용 앱과 함께 MVVM Light를 사용하여 다음과 같은 문제가 있습니다. 생성자의 ViewModel에서 메서드에 대한 참조 대신 람다를 사용하여 간단한 RelayCommand를 만듭니다. 문제는 때로는 전화로 데스크톱으로 이동 한 다음 앱으로 돌아갈 때 약한 참조가 사라진다는 것입니다. 약한 참조를 사용하는 이유를 이해하지만 View 및 ViewModel을 언로드하지 않을 때 왜 제거되는지 이해할 수 없습니다. Frame.GoBack을 통해 페이지로 돌아갈 때도 마찬가지입니다. 페이지 캐싱 (새로운 인스턴스가 생성되면) 없이도 참조가 갑자기 수집되도록 설정됩니다.RelayCommand 약한 참조 (람다 포함)
GoHomeCommand = new RelayCommand(() =>
{
navigationService.NavigateTo("ScheduleChoicePage");
});
<AppBarButton x:Uid="HomePage" Command="{Binding GoHomeCommand}"/>
방법에 대한 참조를 사용할 때 람다가 아니더라도 문제는 없습니다.