【发布时间】:2009-05-13 14:25:14
【问题描述】:
我明白在 MVVM 中:
- View 知道 ViewModel
- ViewModel 了解模型
- 但它不能向上工作,所以模型对视图模型一无所知
- ViewModel 对 View 一无所知
那么 ViewModel 如何响应用户在 View 上执行的操作,例如在 TextBox 中输入内容或移动滑块等。
我知道这是通过 RoutedEvents 完成的,但我发现的几乎所有 RoutedEvent 示例都在视图中使用 CodeBehind,而这正是 MVVM 中所没有的。
所以剩下的 RoutedCommands 我在 MVVM 中找到了更多示例,但例如从这个意义上说,移动滑块真的不是一个命令,它是一个事件,所以我想知道这是否真的应该使用。
然后我read advice 比如“在 MVVM 中尽可能少使用 RoutedEvents,而根本不用 RoutedCommands。 " 好的。
这样就可以了,例如在 WPF 团队自己的 WPF Model-View-ViewModel Toolkit 0.1 项目中,您有一个“DelegateCommand”,这看起来也很有趣。
那么有些人也在使用“RelayCommand”。
对于开发应用程序来说,做如此核心的事情有很多选择和困惑。
在 MVVM 中简单地完成我们过去 10 年使用 Code Behind 所做的最好方法是什么:
- 创建按钮
- 双击按钮
- 编写处理代码
【问题讨论】: