【发布时间】:2015-01-23 22:31:53
【问题描述】:
我在 wp8.1 中使用带有通用应用程序的 MVVM Light 时遇到以下问题。在构造函数中的 ViewModel 中,我使用 lambda 而不是对方法的引用创建了一个简单的 RelayCommand。问题是,有时当我在手机上导航到桌面然后返回应用程序时——弱引用消失了。我确实理解使用弱引用的原因,但我不明白为什么在不卸载 View 和 ViewModel 时它会被删除。通过 Frame.GoBack 返回页面时也会发生同样的情况。即使没有页面缓存(然后创建的新实例),引用也会突然设置为收集。
GoHomeCommand = new RelayCommand(() =>
{
navigationService.NavigateTo("ScheduleChoicePage");
});
<AppBarButton x:Uid="HomePage" Command="{Binding GoHomeCommand}"/>
不过,当使用对方法的引用而不是 lambda 时,似乎没有问题。
【问题讨论】:
标签: windows-runtime windows-phone-8.1 mvvm-light win-universal-app