Xamarin.forms 如何创建一个ReactiveCommand,该命令接收带有Xamarin表单的ReactiveUI 7中的字符串

Xamarin.forms 如何创建一个ReactiveCommand,该命令接收带有Xamarin表单的ReactiveUI 7中的字符串,xamarin.forms,reactiveui,Xamarin.forms,Reactiveui,在我的LoginPage.xaml.cs中,我有一个webview wview。当从我的wview触发导航事件时,我想在我的ViewModel中执行一个命令。我的命令应该从我的webview接收url LoginPage.xaml.cs: protected override void OnAppearing() { base.OnAppearing(); Observable.FromEventPattern<WebNavigatedEventArgs>(

在我的LoginPage.xaml.cs中,我有一个webview wview。当从我的wview触发导航事件时,我想在我的ViewModel中执行一个命令。我的命令应该从我的webview接收url

LoginPage.xaml.cs:

protected override void OnAppearing()
{
    base.OnAppearing();
    Observable.FromEventPattern<WebNavigatedEventArgs>(
        ev => wview.Navigated += ev,
        ev => wview.Navigated -= ev)
        .Select(x => x.EventArgs.Source.ToString())
        .InvokeCommand(ViewModel.VerifyCallbackUrl);
}
protected override void OnAppearing()
{
base.OnAppearing();
可观察的。从事件模式(
ev=>wview.Navigated+=ev,
ev=>wview.Navigated-=ev)
.Select(x=>x.EventArgs.Source.ToString())
.InvokeCommand(ViewModel.VerifyCallbackUrl);
}
如何创建可以对此作出反应的命令?以下代码未编译(委托操作不接受1个参数):

public ReactiveCommand VerifyCallbackUrl{get;protected set;}
public LoginViewModel(IScreen hostScreen=null):基本(hostScreen)
{   
VerifyCallbackUrl=ReactiveCommand
.Create(xUrl=>
{
dosomethingusive();
}); 
}

明确操作的类型参数,它将编译:

public LoginViewModel(IScreen hostScreen = null) : base(hostScreen)
{
    VerifyCallbackUrl = ReactiveCommand.Create(new Action<string>(xUrl => { DoSomethingUseful(); }));
}
public LoginViewModel(IScreen hostScreen=null):基本(hostScreen)
{
VerifyCallbackUrl=ReactiveCommand.Create(新操作(xUrl=>{dosomethingusseve();}));
}
这恰好涵盖了ReactiveUI和Xamarin表单中的命令。
public LoginViewModel(IScreen hostScreen = null) : base(hostScreen)
{
    VerifyCallbackUrl = ReactiveCommand.Create(new Action<string>(xUrl => { DoSomethingUseful(); }));
}