如何使用MVVM将XAML标签与TapGestureRecognitor绑定?

如何使用MVVM将XAML标签与TapGestureRecognitor绑定?,xaml,mvvm,uitapgesturerecognizer,reactiveui,Xaml,Mvvm,Uitapgesturerecognizer,Reactiveui,我尝试使用框架(用于边框和背景)和标签(用于按钮文本)来模拟XAML按钮。但是,我需要添加一个TapGestureRecognizer,以便在单击模拟按钮时工作。我试图在使用ReactiveUI和MVVM的范围内实现这一点,但似乎无法正确连接绑定 下面是在XAML代码中设置绑定的步骤,如下所示: [XamlCompilation(XamlCompilationOptions.Compile)] public partial class LoginPage : ContentPageBase<

我尝试使用
框架(用于边框和背景)和
标签(用于按钮文本)来模拟XAML按钮。但是,我需要添加一个
TapGestureRecognizer
,以便在单击模拟按钮时工作。我试图在使用ReactiveUI和MVVM的范围内实现这一点,但似乎无法正确连接绑定

下面是在XAML代码中设置绑定的步骤,如下所示:

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class LoginPage : ContentPageBase<LoginViewModel>
{
    public LoginPage()
    {
        InitializeComponent();

        NavigationPage.SetHasNavigationBar(this, false);

    }

    protected override void OnAppearing()
    {
        base.OnAppearing();

        this.WhenActivated(disposables =>
        {
            this.Bind(ViewModel, vm => vm.Username, c => c.UsernameEntry.Text)
                .DisposeWith(disposables);

            this.Bind(ViewModel, vm => vm.Password, c => c.PasswordEntry.Text)
                .DisposeWith(disposables);

            //this.OneWayBind(ViewModel, x => x.LoginCommand, x => x.LoginButton.LoginCommand)
            //    .DisposeWith(disposables);

            this.OneWayBind(ViewModel, x => x.LoginCommand, x => x.SimulatedLoginButton.TapGestureCommandGoesHere)
                .DisposeWith(disposables);

            this.OneWayBind(ViewModel, x => x.IsLoading, x => x.LoginActivityIndicator.IsRunning)
                .DisposeWith(disposables);
        });
    }
[XamlCompilation(XamlCompilationOptions.Compile)]
公共分部类登录页:ContentPageBase
{
公共登录页()
{
初始化组件();
SetHasNavigationBar(这个,false);
}
出现时受保护的覆盖无效()
{
base.OnAppearing();
此。当激活时(一次性=>
{
this.Bind(ViewModel,vm=>vm.Username,c=>c.UsernameEntry.Text)
.一次性使用(一次性使用);
this.Bind(ViewModel,vm=>vm.Password,c=>c.PasswordEntry.Text)
.一次性使用(一次性使用);
//这个.OneWayBind(ViewModel,x=>x.LoginCommand,x=>x.LoginButton.LoginCommand)
//.一次性使用(一次性使用);
这个.OneWayBind(ViewModel,x=>x.LoginCommand,x=>x.SimulatedLoginButton.tappesturecommandgoesher)
.一次性使用(一次性使用);
this.OneWayBind(ViewModel,x=>x.IsLoading,x=>x.LoginActivityIndicator.IsRunning)
.一次性使用(一次性使用);
});
}
我已经注释掉了
按钮
绑定(如上),并插入了模拟的
按钮
代码(当然不会编译)。问题是模拟按钮(框架)没有
按钮.Command
,我不确定如何添加TapPassive命令以便识别它

我看到/尝试过使用
Frame.TapGestureRecognizer
标记的XAML,但无法使用此方法使绑定与XAML一起工作


您知道如何使用MVVM实现来实现这一点吗?

在您的XAML中,您必须具有以下内容:

<Frame>
<Frame.GestureRecognizers>
     <TapGestureRecognizer x:Name="Gesture" />
</Frame.GestureRecognizers>
</Frame>

我希望这能帮助您

在您的XAML中,您必须具备以下功能:

<Frame>
<Frame.GestureRecognizers>
     <TapGestureRecognizer x:Name="Gesture" />
</Frame.GestureRecognizers>
</Frame>
我希望这对你有帮助