Interaction triggers in WPF


Interaction triggers in WPF

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

当不足以使用ICommand的时候,这种特殊的手段对MVVM模式非常有用。

我们需要在我们的项目中添加两个引用:

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

代码例子:
 1)引用Microsoft.Expression.Interactions.dll和System.Windows.Interactivity.dll

  在UserControl添加两个特性

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中创建public方法

public void SubmitClicked()
        {
            MessageBox.Show("Button was clicked");
        }

 3) 在UserControl中添加button到Xaml

复制代码
复制代码

如果我们想在这个方法中使用参数,我们应该在ViewModel中使用属性(例如双向绑定)。

 

附录:使用ICommand的例子。

复制代码
//区别:这样可以传参数,但是绑定的是实现了ICommand接口的类的对象。

//步骤1:引用System.Windows.Interactivity.dll,添加特性。
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
//步骤2:使用。 

  "Loaded">
    "{Binding ClockWindowLoadCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  
  "KeyUp">
    "{Binding WindowKeyCommand}"/>
  
  "Activated">
    "{Binding WindowActivatedCommand}" CommandParameter="{Binding ElementName=txtCardNo}"/>
  
复制代码

你可能感兴趣的:(Interaction triggers in WPF)