我正在使用 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/