我可以将另一个用户控件中定义的函数绑定为当前事件处理程序吗?

时间:2011-04-23 15:51:10

标签: c# silverlight binding

我想使用另一个用户控件中定义的函数作为此控件的事件处理程序。有什么方法可以通过使用绑定来实现它吗?或者绑定只能用于属性而不是事件处理程序?

例如:

 <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事件处理程序的事件处理程序吗?怎么样?

感谢您的投入!

1 个答案:

答案 0 :(得分:0)

事件不接受绑定,因此您无法直接执行此操作。您可以采取的措施是使用CallMethodActionEventTrigger(您想要处理的事件)等行为。

<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" 

希望这会有所帮助:)