【问题标题】:Can I binding a function defined in another user-control as current event handler?我可以将另一个用户控件中定义的函数绑定为当前事件处理程序吗?
【发布时间】:2011-04-23 15:51:10
【问题描述】:

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

例如:

 <my:Search x:Name="queryControl" KeyDown=""/>
 <my:Measurement x:Name="measureTool" />

在后面的Measurement代码中:

 public partial class Measurement : UserControl {
    public void Measure2Tool(object sender, EventArgs e) {}
 }

我可以使用绑定将 Measure2Tool 函数指定为 Search 控件的 KeyDown 事件处理程序的事件处理程序吗?怎么样?

感谢您的意见!

【问题讨论】:

    标签: c# silverlight binding


    【解决方案1】:

    事件不接受绑定,所以你不能直接这样做。你可以做的是使用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" 
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      相关资源
      最近更新 更多