首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

在MVVM模式下事件是怎么办的

2013-10-05 
在MVVM模式下事件是怎么处理的。在MVVM模式下事件是怎么处理的,比如说KEYDOWN,没有找到相关的资料。[解决办

在MVVM模式下事件是怎么处理的。
在MVVM模式下事件是怎么处理的,比如说KEYDOWN,没有找到相关的资料。
[解决办法]
事件在MVVM下是通过绑定Command的方式处理的。
  <Button Content="{Binding BtnContent}" Height="23" HorizontalAlignment="Left" Margin="12,178,0,0"                Command="{Binding ShowMessage}" Name="button1" VerticalAlignment="Top" Width="75" />


你可以看看下面一篇文章

http://www.cnblogs.com/chengxingliang/archive/2011/08/08/2130044.html
[解决办法]
MVVM的目的是为了在设计分工上,将编程跟交互界面设计相分离。

那么如果你的事件处理设计、或者ICommand,是纠结于(针对于)界面上的元素来设计的,那么此时就不要讲自己是什么“MVVM模式下的VM”。你这个时候就是V,而不是VM设计。

这个很重要。很多人空谈MVVM,但是在VM中写的代码,你会发现是针对View来设计的代码。这简直就是背叛了MVVM设计的目的了。



那么,既然你的事件处理代码是View设计的一个部分,我建议你熟练使用Behavior/TriggerAction,用它来是的你的View中的设计的先后层次分得更清晰。因为这种行为插件的开发模式,正好就是跟控件的事件机制想配对的,而且在Blend工具上有着非常自然的操作流程。
[解决办法]
楼上说的没错,对于键盘事件,Blend提供了KeyTrigger,对于一般事件,提供了EventTrigger,甚至你可以自己定义Trigger,通过这些Trigger,触发相应的Action。
Behavior简单来说就是把Trigger和Action写在一个实现里。MVVM的前端代码,大多都可以通过Behavior和Trigger来封装。
[解决办法]
EventTrigger

热点排行