繁体   English   中英

Mvvm后退按钮:Page和ViewModel失去命令绑定

[英]Mvvm back button: Page and ViewModel lose command binding

我已经使用MVVM Light实现了以下模式: 在WinRT中使用MVVM Light调用ViewModel方法以响应页面导航事件

我将其结合使用: 如何使用MVVM灯处理WP 8.1上的后退按钮?

private static INavigationService CreateNavigationService()
{
    var navigationService = new NavigationService();
    navigationService.Configure("Details", typeof(DetailsPage));
    navigationService.Configure("Chart", typeof(ChartPage));

    // Handle back button
    HardwareButtons.BackPressed += (sender, args) => {
        navigationService.GoBack();
        args.Handled = true;
    };

    return navigationService;
}

导航到“详细信息”页面和/或“图表”页面,也可以使用“后退”按钮。 但是之后,我将无法再次导航到页面之一。

看起来MainPage及其ViewModel没有重新加载(缓存?)。 因此他们失去了束缚。 没有设置RelayCommand ,因此无法再导航。

谁能帮我这个?

编辑:找到了解决方法:)

最好的问候,里克

将ViewModel中的代码更改为:

public MainViewModel(INavigationService navigationService)
{
    _navigationService = navigationService;

    DetailsCommand = new RelayCommand(() =>
    {
        navigationService.NavigateTo("Details", "My data");
    });
}

至:

public MainViewModel(INavigationService navigationService)
{
    _navigationService = navigationService;

    DetailsCommand = new RelayCommand(() =>
    {
        _navigationService.NavigateTo("Details", "My data");
    });
}

导航现在可以来回运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM