gpt4 book ai didi

c# - 为什么在 WPF 中使用命令而不是事件处理程序

转载 作者:行者123 更新时间:2023-11-30 19:37:29 25 4
gpt4 key购买 nike

我像一年前一样使用 WPFMVVM,我想不完整,因为我不使用命令。到目前为止,我确实在没有命令的情况下完成了我需要的一切,并且工作正常,但对我来说最重要的是,它清晰而简短,MVVM 理论说没有代码隐藏,但是,为什么要复杂化 1000 个类,一个用于每个按钮或事件?

我真的看不到 yield 。这只是概念上的还是还有更多?

最佳答案

我将尝试解释为什么命令有用。

在 MVVM 中,View 开发人员(设计人员)应该只做影响程序外观的事情,而 ViewModel 开发人员(程序员)只关心行为。

假设您有一个带有提交按钮的表单。如果表单没有提交到数据库(例如),那是程序员的问题;没有人会责怪设计师。但是,使用事件意味着一切都在 View 端完成。

这是 Command 派上用场的地方。它允许程序员执行逻辑,然后等待设计者绑定(bind)到它。程序员可以在没有设计(View)的情况下进行单元测试,并自豪地告诉人们它可以工作。如果它坏了,那就意味着设计者没有正确地绑定(bind)它。

当然,我相信这里有很多人会一个人做所有事情。在这种情况下,MVVM 的用处就会降低。但是请注意,当您从 VS 项目中完全删除所有 View 时,您的 ViewModel 将进行编译并发挥全部功能 - 除了没有 GUI,并且它无法接收用户输入。通常,大多数项目需求都是行为方面的,因此如果您的 ViewModel 正常工作,那么您就已经满足了大部分需求。

最后,我想指出的是,代码隐藏是可以的 - 只要它纯粹只影响事物的外观,而不影响行为。当然,大多数完美主义者都希望零代码隐藏,但在某些情况下,这并不总是可能的。

关于c# - 为什么在 WPF 中使用命令而不是事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com