[WPF] 附加属性、行为(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) 上的方法,并声明在加载事件触发时应调用该方法。

作者:ganbei

出处:https://www.cnblogs.com/ganbei/p/15631446.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   干杯Archer  阅读(1403)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题