C# WinRT和MVVM Light V5导航服务

C# WinRT和MVVM Light V5导航服务,c#,windows-runtime,mvvm-light,C#,Windows Runtime,Mvvm Light,我正在使用MVVM Light V5开发一个WinRT应用程序。我想从一个页面导航到另一个页面,并传递一个对象。我有一个GridView,我想捕获单击的项目,因此我创建了一个RelayCommand,它可以执行以下操作: private void ItemClickExecute(ItemClickEventArgs e) { navigationService.NavigateTo("AnotherPage", e.ClickedItem as MyObject);

我正在使用MVVM Light V5开发一个WinRT应用程序。我想从一个页面导航到另一个页面,并传递一个对象。我有一个GridView,我想捕获单击的项目,因此我创建了一个RelayCommand,它可以执行以下操作:

private void ItemClickExecute(ItemClickEventArgs e)
    {
        navigationService.NavigateTo("AnotherPage", e.ClickedItem as MyObject);           
    }

这很好用。我的问题是从另一个页面视图模型获取此对象。我该怎么做呢?

很抱歉,我来晚了,希望这能有所帮助

您应该为要导航到的页面创建ViewModel,并将其设置为DataContext。然后在该视图模型中创建MyObject属性

之后,覆盖要导航到的页面的OnNavigatedTo事件

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var vm = (SecondPageViewModel)this.DataContext;
        if (vm!=null)
        {
            var temp = e.Parameter as MyObject;
            if (temp != null) 
            {
                 vm.MyObjectProperty = temp;
            }
        }
    }
这应该可以做到

还有其他更复杂、更符合mvvm的答案,但这对我来说是可行的