Edw*_*uay 18 wpf events command mvvm
在使用MVVM模式创建WPF应用程序时,似乎我必须自己收集必要的工具,甚至开始最基本的事件处理,例如
现在我正在寻找一些方法来处理ComboBox中的ItemSelected事件,并获得了一些技巧和变通方法的建议(使用XAML触发器或将其他元素绑定到所选项目等).好吧,我可以走这条路,但它似乎正在重新发明轮子.只有一个我可以在我的ViewModel中处理的ItemSelected命令会很好.
我是否缺少一些标准工具,或者每个人都在使用WPF进行MVVM,基本上构建和组合他们自己的工具集合,这样他们就可以使用事件和命令完成最简单的管道任务,这些事情在代码隐藏中只需要几行用Click ="eventHandler"?
Chr*_*l52 16
你对命令的复杂性是正确的.我尝试尽可能地遵循MV-VM模式,但我不能仅仅为了处理简单的用户事件而证明复杂的解决方法.
在我看来,如果能够大大简化您的代码,则可以在View中处理用户事件.如果您在View中处理用户事件,View的代码隐藏应立即调用ViewModel上的方法.这样,你仍然在ViewModel中保留你的逻辑......你只需要在View中有一些管道代码(事件处理程序).我知道MV-VM纯粹主义者认为View的代码隐藏中应该没有代码,但有时候允许一些简单的样板代码(如事件处理程序)更有意义.请记住,其他人可能必须在将来读取/修改您的代码,并且比DelegateCommand更容易理解事件处理程序.
根据Josh Smith 关于MVVM 的文章,它于2005年10月在John Gossman的博客上向全世界揭幕.
从那时起我会说WPF/MVVM需要2到2年才能真正起飞并被社区所接受,到那时为时尚早,改装WPF以支持MVVM的问题.另外我会说WPF创建了MVVM,因此似乎已经倒退了WPF更改以支持MVVM.
最后,并非所有做WPF的人都使用MVVM,因此API需要支持事件的标准用法等
所以,回答你的问题,是的,每个人都在将自己的工具集合在一起,因为"官方"支持目前只提供DelegateCommands框架.