CallMethodAction:如何将视图实例称为TargetObject

时间:2010-12-10 15:16:46

标签: silverlight

我知道你将使用它来调用ViewModel上的方法,但出于好奇,你将如何使用在视图实例上连接事件处理程序,相当于在后面的代码中连接它。

2 个答案:

答案 0 :(得分:3)

TargetObject是具有要调用的方法的对象,如果在窗口代码中有方法,那么对象就是窗口本身。您可以通过其名称绑定到它:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
             ...etcetera...
             x:Name="UserControl">

所以你的CallMethodAction将是:

<ei:CallMethodAction MethodName="MyMethod"
                     TargetObject="{Binding ElementName=UserControl, Mode=OneWay}"/>

答案 1 :(得分:1)

我认为你可能会遇到这样的事情(忽略这个特定的例子最好用命令完成)。

<Button Content="Click this">
   <i:Interaction.Triggers>
      <i:EventTrigger EventName="Click">
        <ei:CallMethodAction TargetObject="{Binding}" MethodName="SomeMethod" />
      </i:EventTrigger>          
   </i:Interaction.Triggers>
</Button>