Xamarin 如何将手势识别器添加到viewModel C#

Xamarin 如何将手势识别器添加到viewModel C#,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有这样一个标签: 在后面的C#中,我有: faveLabel.gestureignizers.Add( 新的TapGestureRecognitor() { 命令=新命令(()=> { App.phrase.Favorite=!App.phrase.Favorite; faveLabel.TextColor=App.phrase.Favorite==true?Color.Red:Color.Gray; App.DB.UpdateFavorite(App.phrase.Favorite、Ap

我有这样一个标签:


在后面的C#中,我有:

faveLabel.gestureignizers.Add(
新的TapGestureRecognitor()
{
命令=新命令(()=>
{
App.phrase.Favorite=!App.phrase.Favorite;
faveLabel.TextColor=App.phrase.Favorite==true?Color.Red:Color.Gray;
App.DB.UpdateFavorite(App.phrase.Favorite、App.PhraseId);
})
});
当我将ViewModel绑定到此框架时,如何将其移动到此ViewModel代码中

公共类短语框架视图模型:ObservableProperty
{
公共短语框架视图模型()
{
var aButtonClickedCommand=新命令(()=>
{
App.DB.IncrementScore(App.cfs,App.phrase,(int)App.aBtn);
App.correctButtonPressed=(int)App.aBtn;
ResetTimer2();
});

请注意,我确实希望避免将手势识别器添加到XAML中,因为XAML已经相当大了。

您可以绑定到最新版本的Xamarin.Forms中的命令,因此可以执行以下操作:

您的viewmodel:

public class PhrasesFrameViewModel : ObservableProperty
{
    public PhrasesFrameViewModel()
    {

        var aButtonClickedCommand = new Command(() =>
        {
            App.DB.IncrementScore(App.cfs, App.phrase, (int)App.aBtn);
            App.correctButtonPressed = (int)App.aBtn;
            ResetTimer2();
        });
您的xaml:

<Label.GestureRecognizers>
    <TapGestureRecognizer Command="{Binding aButtonClickedCommand}"/>
</Label.GestureRecognizers>


这会将viewmodel中的命令绑定到标签。

您可以绑定到最新版本的Xamarin.Forms中的命令,这样您就可以执行以下操作:

您的viewmodel:

public class PhrasesFrameViewModel : ObservableProperty
{
    public PhrasesFrameViewModel()
    {

        var aButtonClickedCommand = new Command(() =>
        {
            App.DB.IncrementScore(App.cfs, App.phrase, (int)App.aBtn);
            App.correctButtonPressed = (int)App.aBtn;
            ResetTimer2();
        });
您的xaml:

<Label.GestureRecognizers>
    <TapGestureRecognizer Command="{Binding aButtonClickedCommand}"/>
</Label.GestureRecognizers>


这应该会将viewmodel中的命令绑定到标签上。

谢谢,如果您有时间,请您再解释一下您使用的单独类。您是说您没有在视图模型中添加点击手势,如果是这样的话,那么您如何绑定它们?@Alan2向Alan道歉,忽略行为cOMENT(我现在已将其删除).这更适用于验证条目等。我想我今天工作太努力了哈哈,这里有一个链接,指向Xamarin中的行为,以防你想看看它们的作用:谢谢,如果你有时间,你能再解释一下你使用的单独类。你是说你不为ex设置轻拍手势吗进入视图模型足够了,如果是这样的话,那么你如何绑定它们?@Alan2向Alan道歉,忽略行为评论(我现在已经删除了它)。这更适用于验证条目等。我想我今天工作太努力了哈哈,这里有一个链接指向Xamarin中的行为如何,以防万一你想看看它们做了什么: