gpt4 book ai didi

c# - 为什么 ICommand 比调用 VM 的代码更好?

转载 作者:可可西里 更新时间:2023-11-01 07:54:34 25 4
gpt4 key购买 nike

我有一个同事问我为什么他必须使用 ICommand 模式。

他想添加一个按钮,然后在后面的代码中为它创建一个事件。然后从事件中他想调用 ViewModel 上的方法。

我给了他一个明显的答案:这增加了 View 和 ViewModel 之间的耦合。但他认为 View 和 ViewModel 已经耦合。 (我们在 View 后面的代码中将 View 的 DataContext 设置为 ViewModel:DataContext = new MyViewModel();

是的,我告诉他他的方式增加了“更多的耦合”,但即使对我来说听起来也有点蹩脚。

所以,我知道 ICommand 是最干净的方式,我就是这样做的。但是除了不使用现有的耦合器之外,ICommand 还能给您带来什么?

最佳答案

  • 这不是解耦,而是您可以深入 ModelView 层次结构的深度:不是事件泵送,而是事件路由,内置于框架中.

  • 关于 UI 管理:命令有状态(CanExecute),如果将命令分配给控件,如果命令的状态变为 false,控件将被禁用。它为您提供了强大的 UI 状态管理方式,避免了大量的意大利面条式编码,尤其是对于复杂的 UI。

关于c# - 为什么 ICommand 比调用 VM 的代码更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8610007/

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