我想使用另一个用户控件中定义的函数作为此控件的事件处理程序。有什么方法可以通过使用绑定来实现它吗?或者绑定只能用于属性而不是事件处理程序?
例如:
<my:Search x:Name="queryControl" KeyDown=""/>
<my:Measurement x:Name="measureTool" />
在背后的测量代码中:
public partial class Measurement : UserControl {
public void Measure2Tool(object sender, EventArgs e) {}
}
我可以使用绑定将Measure2Tool函数指定为Search控件的KeyDown事件处理程序的事件处理程序吗?怎么样?
感谢您的投入!
卫
答案 0 :(得分:0)
事件不接受绑定,因此您无法直接执行此操作。您可以采取的措施是使用CallMethodAction
和EventTrigger
(您想要处理的事件)等行为。
<my:Search x:Name="queryControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<ei:CallMethodAction TargetObject="{Binding ElementName=measureTool}"
MethodName="{Binding Measure2Tool}"/>
</i:EventTrigger>
<i:Interaction.Triggers>
<my:Search x:Name="queryControl>
与
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
希望这会有所帮助:)