需求背景:
当我们需要制作画板时,我们的VM需要记录我们的坐标并保存到Path的Data中,用我们普通的Command是无法办到的,这时我们就衍生出来了一个交互触发器CallMethodAction
使用方法:
1:去Nuget下载MicrosoftExpressionInteractions 如图
2:这时我们在我们的页面xaml中添加引用 xmlns:Interaction="http://schemas.microsoft.com/expression/2010/interactions"
3:在我们的控件中添加行为,比如 我们需要在VM中获取Loaded事件这事需要这样写==>>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<Interaction:CallMethodAction MethodName="TestLoadedCommand" TargetObject="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
4:在VM里面定义TestLoadedCommand方法如:
public void TestLoadedCommand(object obj, RoutedEventArgs arg)
{
}
这时我们需要的效果就完成啦
备注:CallMethodAction和我们的InvokeCommandAction调用方式不一样,前者是用 MethodName="TestLoadedCommand" TargetObject="{Binding}" 进行触发无需写命令(Command) 后者就是单纯的是用Command进行触发,并且VM中需要声明ICommand方法
警告:本文章未经作者允许禁止转载 2021-12-21 著