我使用了命令绑定来完成按钮的click事件。现在我也在按钮上举行了举办活动。因此,每当我按住按钮时,单击也会随着持有事件处理程序一起被调用。我试过设置
e.handled = true;
但这不起作用。关于为什么两个事件都被检测到的任何建议。如果我使用Tapped事件而不是命令绑定,一切正常。但我的要求是对点击事件使用命令绑定。
编辑:下面是一些代码
代码: xaml:
Button Command={Binding ButtonClicked} Holding="Button_Holding"
xaml.cs
private void Button_Holding(object sender, HoldingRoutedEventArgs e)
{
}
ViewModel具有ButtonClicked命令
答案 0 :(得分:0)
我不是这方面的专家,但我猜控股是一个冒泡的事件,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
}
}