我有一个listpicker元素,当listpicker“关闭”或返回其正常状态时,我需要运行一个方法。我的xaml看起来像这样:
<i:Interaction.Triggers>
<exp:DataTrigger Binding="{Binding ListPickerMode, ElementName=ListPickerAssembly}" Value="Normal">
现在我需要从我的代码后面调用一个方法。我在想要搜索的所有内容的前3页上都有紫色链接。
我看到有一个:
<exp:CallMethodAction
标签看起来可能有效,但我无法弄清楚如何使用它。
非常感谢任何帮助。
更新
搞定了。在我的.cs中,我添加到我的构造函数中:
DataContext = this;
在我的XAML中,我添加了:
x:Name="Page"
然后在我的数据触发器中,我添加了:
<exp:CallMethodAction TargetObject="{Binding DataContext, ElementName=Page}" MethodName="Fire" />
现在调用该方法。
答案 0 :(得分:1)
CallMethodAction使用TargetObject
和MethodName
属性来确定要调用的方法。如果你想要一个代码隐藏方法,那么“TargetObject”必须是你的控件/页面/的任何东西。如果它是模板化控件,则使用
<exp:CallMethodAction TargetObject="{Binding RelativeSource={RelativeSource TemplatedParent}}"
MethodName="MethodToInvoke" />
如果是页面/控件,那么也许可以使用ElementName
绑定(我不是100%确定这实际上有效,但请尝试...)
<phone:Page
x:Name="page" ...
<exp:CallMethodAction TargetObject="{Binding ElementName=page}"
MethodName="MethodToInvoke" />
然后,只需确保您的方法是公开的(在这方面它与使用事件处理程序不同)。
public void MethodToInvoke() { ... }