日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

在WPF中使用Interaction.Triggers_C#教程

作者:Lynn_ ? 更新時(shí)間: 2022-08-16 編程語(yǔ)言

Interaction Class?- static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications (MSDN).

當(dāng)不足以使用ICommand的時(shí)候,這種特殊的手段對(duì)MVVM模式非常有用。

我們需要在我們的項(xiàng)目中添加兩個(gè)引用:

-?Microsoft.Expression.Interactions.dll
-?System.Windows.Interactivity.dll

代碼例子:

  • 1)引用Microsoft.Expression.Interactions.dll和System.Windows.Interactivity.dll

在UserControl添加兩個(gè)特性

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
<!--或者-->
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
  • 2) 在ViewModel中創(chuàng)建public方法
public void SubmitClicked()
{
    MessageBox.Show("Button was clicked");
}
  • 3) 在UserControl中添加button到Xaml
<Button Content="Submit Method"  Width="180">
     <i:Interaction.Triggers>
         <i:EventTrigger EventName="Click">
               <ei:CallMethodAction TargetObject="{Binding}" MethodName="SubmitClicked"/>
         </i:EventTrigger>
      </i:Interaction.Triggers>
</Button>

如果我們想在這個(gè)方法中使用參數(shù),我們應(yīng)該在ViewModel中使用屬性(例如雙向綁定)。

附錄:使用ICommand的例子。

//區(qū)別:這樣可以傳參數(shù),但是綁定的是實(shí)現(xiàn)了ICommand接口的類的對(duì)象。

//步驟1:引用System.Windows.Interactivity.dll,添加特性。
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
//步驟2:使用。 
<i:Interaction.Triggers>
  <i:EventTrigger EventName="Loaded">
    <i:InvokeCommandAction Command="{Binding ClockWindowLoadCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  </i:EventTrigger>
  <i:EventTrigger EventName="KeyUp">
    <i:InvokeCommandAction Command="{Binding WindowKeyCommand}"/>
  </i:EventTrigger>
  <i:EventTrigger EventName="Activated">
    <i:InvokeCommandAction Command="{Binding WindowActivatedCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  </i:EventTrigger>
</i:Interaction.Triggers>

原文鏈接:https://www.cnblogs.com/lynn-/p/3262658.html

欄目分類
最近更新