我有一个列表选择器元素,我需要在列表选择器“关闭”或返回其正常状态时运行一个方法。我的 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" />
它现在调用该方法。
最佳答案
CallMethodAction 使用 TargetObject
和 MethodName
属性来确定调用哪个方法。如果你想以代码隐藏方法为目标,那么“TargetObject”必须是你的控件/页面/任何东西的根。如果它是模板化控件,则使用
<exp:CallMethodAction TargetObject="{Binding RelativeSource={RelativeSource TemplatedParent}}"
MethodName="MethodToInvoke" />
如果它是一个页面/控件,那么可以使用 ElementName
绑定(bind)(我不是 100% 确定这是否真的有效,但请尝试...)
<phone:Page
x:Name="page" ...
<exp:CallMethodAction TargetObject="{Binding ElementName=page}"
MethodName="MethodToInvoke" />
然后,只需确保您的方法是公开的(在这方面它与使用事件处理程序不同)。
public void MethodToInvoke() { ... }
关于c# - WP8 XAML DataTrigger CallMethodAction 用于从代码后面调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108008/