【问题标题】:Passing Data to Another ViewModel将数据传递给另一个 ViewModel
【发布时间】:2014-02-15 19:36:29
【问题描述】:

您好,我想将一个字符串传递给另一个视图模型。我正在尝试使用此代码,但它不符合我的目的,因为我需要知道收件人视图的视图模型中的字符串值。我怎样才能做到这一点?您还可以使用 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));
 }

我目前不知道如何处理接收者视图模型上的参数。

【问题讨论】:

    标签: navigation windows-phone mvvm-light


    【解决方案1】:

    Stack Careers Browser 从主页视图中选择职业时,我在 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);
                }
            }
    

    对应的视图模型有一个如下所示的构造函数:

    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);
        }
    

    我需要一些基本对象来处理更多信息并以 windows phone 8 方式显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-25
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      相关资源
      最近更新 更多