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

标签 mvvm event-handling silverlight-4.0

我正在使用 MVVM 模型做 silverlight,我发现很难通过 MVVM 进行事件处理,特别是事件处理程序在 View 中进行大量更改,例如启用和禁用按钮、更新媒体元素功能和位置。我对 MVVM 还很陌生,我不知道我该如何做到这一点。有没有人已经知道好的文章开始或简单的理解方法:)我会回复我在搜索时可能会发现有趣的内容。谢谢

最佳答案

1) 了解 MVVM 有不同的“风格”。严格/核​​心 MVVM 模式虽然理论上是需要的,但并不是必需的。

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

3) 对于通过 MVVM 模型启用/禁用 View 控件/状态之类的操作,这里有一个示例/说明:

  • Xaml 控件(例如按钮)对于任何属性都数据绑定(bind)到 ViewModel (在本例中,它将是按钮的 IsEnabled 属性)。
  • 您的 ViewModel 有一个 IsButtonEnabled 属性。
  • 每当您在虚拟机中更改此属性时,都会引发 PropertyChanged 通知,您将在 View 中看到绑定(bind)结果(按钮的 IsEnabled 状态将更新)。

ps - 您可以通过这种方式通过虚拟机属性做很多事情:从文本到各种属性状态、颜色,您甚至可以在属性 setter / getter 中播放动画......等等。

干杯

关于mvvm - MVVM 中事件处理的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375376/

相关文章:

银光 4 : How to access control created from codebehind

c# - 是否在模型中包含 View 特定信息

c# - Caliburn.Micro WPF : How can I create a new ViewModel that has a dependency?

event-handling - ABAP:CL_SIMPLE_TREE_MODEL 的事件 CONTEXT_MENU_SELECT - 无法触发它

C#/winforms : ItemCheckEventHandler after new checkstate has been applied

silverlight-4.0 - Silverlight 4 WCF Ria 服务 404 错误

c# - 通过 MVVM 模式创建 UserControl - DataContext 并绑定(bind)到父级

c# - 如何从 ViewModel 适本地在 View 中运行触发器?

c# - IoC Container Unity 搞乱了我

c# - 如何获取适用于 Visual Studio 2010 的 Silverlight 附加组件和一些示例代码?