【问题标题】:Button Click event is getting called for holding eventButton Click 事件被调用以保持事件
【发布时间】:2015-10-18 00:34:25
【问题描述】:

我已经为按钮的点击事件使用了命令绑定。现在我在按钮上也有一个保持事件。因此,每当我按住按钮时,单击也会与按住事件处理程序一起被调用。我试过设置

 e.handled = true;

但这不起作用。关于为什么会检测到这两个事件的任何建议。如果我使用 Tapped 事件而不是命令绑定,一切正常。但我的要求是对点击事件使用命令绑定。

编辑:下面是一些代码

代码: xml:

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

xaml.cs

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

ViewModel 有 ButtonClicked 命令

【问题讨论】:

  • 你指定ClickMode吗?
  • 有很多方法可以将命令绑定到事件,这就是您应该使用Tapped 事件来做的事情
  • 你能准确解释你想要达到的目标吗?为什么需要使用Holding 事件?

标签: c# wpf windows xaml windows-phone-8


【解决方案1】:

我不是这方面的专家,但我想 Holding 是一个冒泡事件,而 ButtonClick 是一个直接事件(如果有人知道我肯定会喜欢阅读评论)

因此,您的 e.handled = true; 不适用于 ButtonClicked 事件。 我会说你必须让你的按钮点击命令知道先触发了保持事件,然后通过 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
         }

    }

【讨论】:

    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 2011-04-05
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多