Button Click 事件被调用以保持事件
Posted
技术标签:
【中文标题】Button Click 事件被调用以保持事件【英文标题】:Button Click event is getting called for holding event 【发布时间】: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
事件?
【参考方案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
【讨论】:
以上是关于Button Click 事件被调用以保持事件的主要内容,如果未能解决你的问题,请参考以下文章