附加属性、行为(Behavior)触发方法(下)

上一节我们使用的是一个扩展方法来实现我们的要求

那么现在我们使用Behavior 来实现这种功能

首先我们需要在View中引用Behavior的 namespace

xmlns:b="http://schemas.microsoft.com/xaml/behaviors"

然后我们创建该Behavior的触发方式

 <b:Interaction.Triggers>
        <b:EventTrigger EventName="Loaded">
            <b:CallMethodAction
                MethodName="Load"
                TargetObject="{Binding}" />
        </b:EventTrigger>
  </b:Interaction.Triggers>
  <Grid/>

如上面代码所示,我们使用一个触发器来触发。

这种工作方式是事件触发器将监视指定事件在视图中触发,然后我们将调用包含在子元素中的Behavior。

我们将事件触发器正在监视的事件切换为“Loaded” ,因为这是我们要使用的事件,现在,在 CallMethodAction 行为上,

它需要知道它将调用什么。

因此,目标对象有一个属性(TargetObject),我们可以将其设置为Binding,相当于将目标设置为当前的View ,表示绑定将产生对整个数据上下文的引用,这是我们在 mvvm中 的 ViewModel。

然后有一个单独的方法名称属性,我们可以将其设置为我们需要触发的 Load 方法。

这实现了 与附加行为相同的功能。

它使我们可以有效地指向视图模型(ViewModel) 上的方法,并声明在加载事件触发时应调用该方法。

上一篇:仿高德地图首页效果,简单代码实现


下一篇:python高校学生消费行为分析系统