MVVM模式下,View触发任意事件在ViewModel中响应

2016-08-20 10:39:34来源:http://306702895.blog.51cto.com/8366753/1613209作者:very_much人点击


由于使用的是prism框架,所有需要首先引入Prism4/Lib/Desktop下的

Microsoft.Expression.Interactions.dll

System.Windows.Interactivity.dll

XAML文件

xmlns:i=http://schemas.microsoft.com/expression/2010/interactivity

绑定事件

<Button Content="MouseLeave事?件t" Width="70" Height="25">

<i:Interaction.Triggers>

<i:EventTrigger EventName="MouseLeave">

<i:InvokeCommandAction Command="{Binding MouseLeave}" CommandParameter="123"/>

</i:EventTrigger>

</i:Interaction.Triggers>

</Button>

ViewModel文件

publicICommand MouseLeave

{

get

{

return new DelegateCommand<string>(x =>{MessageBox.Show("MouseLeave" + x);});

}

}

注意事项:

Microsoft.Expression.Interactions.dll

System.Windows.Interactivity.dll

在prism和C:/Program Files/Microsoft SDKs/Expression/Blend 3/Interactivity/Libraries/WPF都有,并且WPF和Silverligter都有这些文件(不能通用),如果引用的是blend中的dll,则需要通过xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"方式引用,但是绑定事件的方式和从prism引用的dll不同,所以建议dll从prim文件夹下引用。

Dll从http://compositewpf.codeplex.com/下载

转载自:http://www.cnblogs.com/gossip/archive/2011/07/03/2096699.html


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台