xamarin 如何将网格手势链接到“视图模型”命令?

0md85ypi  于 2023-05-04  发布在  其他
关注(0)|答案(1)|浏览(129)

以下是我迄今为止尝试的:

<Grid x:Name="wordGrid" Padding="10,0,10,0">
   <Grid.GestureRecognizers>
      <TapGestureRecognizer Command="{Binding wordGridClickedCommand}" />
   </Grid.GestureRecognizers>

在视图模型中:

public class PhrasesFrameViewModel : ObservableProperty
{

    public PhrasesFrameViewModel()
    {
        var wordGridClickedCommand = new Command(() =>
        {
            if (App.Timer1Running)
                ResetTimer1();
            else
                ResetTimer2();
        });
    }

当我在命令中放置断点时,当我点击网格时,它不会到达。
我可能做错了什么?

uqdfh47h

uqdfh47h1#

Binding只适用于属性。
您可以将视图模型中的属性公开为:

private ICommand wordGridClickedCommand;
pubilc ICommand WordGridClickedCommand 
{ 
    get { return wordGridClickedCommand; } 
    set 
    { 
        wordGridClickedCommand = value;
        OnPropertyChanged();
    }
}

并确保将绑定路径更新为XAML中的WordGridClickedCommand

编辑-1

或者您可以用途:

private ICommand wordGridClickedCommand;
pubilc ICommand WordGridClickedCommand 
{ 
    get 
    { 
        return wordGridClickedCommand ?? 
            (wordGridClickedCommand = new Command(() =>
            {
                if (App.Timer1Running)
                    ResetTimer1();
                else
                    ResetTimer2();
            }));
    }
}

相关问题