C# 如何在xamarin.forms中使用viewmodel中的参数

C# 如何在xamarin.forms中使用viewmodel中的参数,c#,visual-studio,xamarin,mvvm,xamarin.forms,C#,Visual Studio,Xamarin,Mvvm,Xamarin.forms,我试图将参数传递给Xamarin.Forms中的viewmodel。但我也想在加载页面时使用它,用该参数调用rest服务。但在加载事件中,参数始终为null。(如果我将该参数绑定到标签或其他,我可以看到该参数。) 如何使其正常工作并在viewmodel的加载事件中使用该参数?谢谢你的帮助 这是按钮单击事件并导航到Samplepage 这是示例页面视图模型 这是SamplePage代码 我们需要看导航服务 您应该在NavigationService而不是SamplePage中添加bindingCo

我试图将参数传递给Xamarin.Forms中的viewmodel。但我也想在加载页面时使用它,用该参数调用rest服务。但在加载事件中,参数始终为null。(如果我将该参数绑定到标签或其他,我可以看到该参数。) 如何使其正常工作并在viewmodel的加载事件中使用该参数?谢谢你的帮助

这是按钮单击事件并导航到Samplepage

这是示例页面视图模型

这是SamplePage代码


我们需要看导航服务

您应该在NavigationService而不是SamplePage中添加bindingContext

In使用带有参数的NavigationService和更好的NavigationService结构。你应该看看


请发送反馈。

对于这个Miguel,这对我帮助很大,我可以通过这种方法做我想做的事情。你可以在xamarin.forms中导航页面时发送参数,如下所示

\u navigationService.NavigateToAsync(“您的参数”)
您可以在该页面的viewmodel中获得该参数,如下所示


是的,这种结构非常好。我总是使用。您可以在viewmodels之间发送参数。很高兴您提供了帮助。此示例是Microsoft示例的副本,仍然没有使用parameter对象,只是接受了它。
 private void OntaptedBildirimItem(string param)
    {
      this._navigationService.NavigateTo(nameof(Views.SamplePage), param);
    }
      private string _id;
    public string id
    {
        get
        {
            return _id;
        }
        set
        {
            Set(() => id, ref _id, value);
        }
    }    
public SamplePageViewModel(INavigationService navigationService) : base(navigationService)
    {
        this._navigationService = navigationService;
        this.Title = "Sample Page=" + id; // here the id is always null,but if I use it to bind a label in xaml ,it has a value.
    }
     public SamplePage(string parameter)
    {
        InitializeComponent();
        var viewModel = this.BindingContext as ViewModels.SamplePageViewModel;
        if(viewModel != null && parameter != null)
        {
            viewModel.bildirimid = parameter;
        }
    }
 public override async Task InitializeAsync(object yourparameter)
        {
            // use yourparameter as you wish
        }