Navigation 将数据传递给另一个ViewModel

Navigation 将数据传递给另一个ViewModel,navigation,windows-phone,mvvm-light,Navigation,Windows Phone,Mvvm Light,您好,我想将字符串传递给另一个viewmodel。我试图使用这段代码,但它不符合我的目的,因为我需要知道收件人视图的viewmodel中的字符串值。我怎样才能做到这一点?您还可以建议使用mvvm light和命令执行此操作的更好方法,因为我对这两种方法的概念不太清楚 public MainViewModel() { GiveDetails = new RelayCommand<object>(DoSomething); } private void DoSo

您好,我想将字符串传递给另一个viewmodel。我试图使用这段代码,但它不符合我的目的,因为我需要知道收件人视图的viewmodel中的字符串值。我怎样才能做到这一点?您还可以建议使用mvvm light和命令执行此操作的更好方法,因为我对这两种方法的概念不太清楚

 public MainViewModel()
 {
        GiveDetails = new RelayCommand<object>(DoSomething);
 }

 private void DoSomething(object param)
 {
        var rootFrame = (App.Current as App).RootFrame;
        rootFrame.Navigate(new System.Uri("/Details.xaml?ID="+param.ToString(), System.UriKind.Relative));
 }
public主视图模型()
{
GiveDetails=新继电器命令(DoSomething);
}
私有void DoSomething(对象参数)
{
var rootFrame=(App.Current作为App.rootFrame);
rootFrame.Navigate(new System.Uri(“/Details.xaml?ID=“+param.ToString(),System.UriKind.Relative));
}
我目前不知道如何处理收件人视图模型上的参数。

在主页视图中选择职业时,我在DetailsPage.xaml.cs上的OnNavigatedTo事件中有以下内容

  if (DataContext == null)
        {
            string selectedIndex = "";
            if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
            {
                **int index = int.Parse(selectedIndex);**
                **DataContext = _vm = new JobPostingViewModel(App.ViewModel.JobPostings[index]);**
                Indicators.SetIndicators(this, DataContext);
                await _vm.ScrapeThatScreenAsync(_vm.JobPosting.Id);
            }
        }
相应的viewmodel具有如下所示的构造函数:

public JobPostingViewModel(JobPosting jobPosting)
    {
        if (jobPosting == null)
            throw new ArgumentNullException("jobPosting");

        JoelTestResults = new ObservableCollection<JoelTestResult>();
        // JoelTestResults = new ObservableCollection<string>(){"a","b","c"};
        _jobPosting = jobPosting;
        if (jobPosting.Categories != null && jobPosting.Categories.Any())
            ProcessCategories(jobPosting.Categories);
    }
公共职位发布视图模型(职位发布)
{
如果(jobPosting==null)
抛出新的ArgumentNullException(“jobPosting”);
JoelTestResults=新的ObservableCollection();
//JoelTestResults=新的ObservableCollection(){“a”、“b”、“c”};
_职位公告=职位公告;
if(jobbosting.Categories!=null&&jobbosting.Categories.Any())
流程类别(jobPosting.Categories);
}
其中,我需要一些基本对象,以便处理更多信息并以windows phone 8方式显示