Button Click事件被调用以保持事件

本文关键字:事件 Click Button 调用 | 更新日期: 2023-09-27 18:04:51

我对按钮的单击事件使用了命令绑定。现在我也有一个按钮上的持有事件。所以每当我按住按钮时,click也会被调用,同时调用事件处理程序。我试过设置

 e.handled = true;

但这不起作用。有什么建议吗,为什么这两个事件都被检测到了。如果我使用tap事件而不是命令绑定,一切工作正常。但我的要求是使用命令绑定点击事件。

编辑:下面是

背后的一些代码

代码:xaml:

 Button Command={Binding ButtonClicked} Holding="Button_Holding"

xaml.cs

private void Button_Holding(object sender, HoldingRoutedEventArgs e)
    {
    }

ViewModel有ButtonClicked命令

Button Click事件被调用以保持事件

我不是这方面的专家,但我猜Holding是一个冒泡事件,ButtonClick是一个直接事件(如果有人知道这一点,我很乐意阅读评论)

所以你的e.handled = true;不适用于ButtonClicked事件。我想说的是你必须让你的按钮点击命令知道hold事件被触发了然后通过CanExecute方法忽略这个事件,或者不管你叫它什么,或者至少做一些类似

的事情
    public void YourButtonClickedMethod()
    { 
         if(SomeObject.IsHoldAllreadyExecuted)
         {
             SomeObject.IsHoldAllreadyExecuted = false; //set it to false for the next run 
         }
         else 
         {
             //DO the stuff you want to
         }
    }