[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) 上的方法,並聲明在加載事件觸發時應調用該方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM