什么是MVVM中事件处理的最佳实践

时间:2010-07-30 21:10:21

标签: mvvm event-handling silverlight-4.0

我正在使用MVVM模型做一个Silverlight,我发现很难通过MVVM进行事件处理,尤其是事件处理程序在视图中进行了大量更改,如启用和禁用按钮,更新媒体元素功能和位置。我还是MVVM的新手,我不能想象我怎么能这样做。有没有人知道好的文章开始或简单的方法来理解:)我会回复我可能会发现有趣的同时我也做我的搜索。谢谢

1 个答案:

答案 0 :(得分:4)

1)明白MVVM有不同的“风味”。严格/硬核MVVM模式虽然在理论上是理想的,但并不是必需的。

2)可以通过命令处理许多视图事件。 WPF支持这一点,我相信Silverlight 4也可以。一个简单的视图事件就是按钮点击。这允许您在ViewModel中处理事件(而不是View的'代码隐藏')。

3)对于通过MVVM模型启用/禁用视图控件/状态的事情,这里有一个示例/解释:

  • 对于任何属性,Xaml控件(例如,一个Button)都是数据绑定到ViewModel (在这种情况下,它将是按钮的IsEnabled属性)。
  • 您的ViewModel具有IsButtonEnabled属性。
  • 每当您在VM中更改此属性时,请引发PropertyChanged通知,您将在视图中看到绑定结果(按钮的IsEnabled状态将被更新)。

ps - 你可以通过这种方式通过VM属性做很多事情:从文本到各种属性状态,颜色,甚至可以在属性设置器/ getter等中播放动画。

干杯