gpt4 book ai didi

wpf - MVVM ICommand 替代方案

转载 作者:行者123 更新时间:2023-12-04 21:51:12 26 4
gpt4 key购买 nike

我已经开始创建一个 wpf mvvm 应用程序。 ViewModel 的一个重要组成部分似乎是一堆 ICommand,它们具有允许 View 与 viewmodel 交互的松散耦合方式。

我的问题是,为什么我不能直接绑定(bind)到一个方法?

我使用了 Josh Smith 的 ICommand 的 RelayCommand 实现,它允许您将 delgate 注入(inject)到 ICommand 对象中,但实际上,是否有一些更简单的方法可以让按钮按下来调用 View 模型中的方法?

我是 MVVM 的新手,我相信我需要一些启发

最佳答案

您不能直接绑定(bind)到方法,因为 Button (例如)没有接受委托(delegate)的属性。相反,它有一个 Command ICommand 类型的属性.一个 RelayCommand (又名 DelegateCommand )只是一个 ICommand包装代表。

我看不出为什么 View 无法通过标记扩展绑定(bind)到 View 模型上的特定方法的技术原因:

<Button Command="{ViewModelMethod SomeMethodName}"/>

但是,这会更慢,并且会增加 View 和 View 模型之间的耦合。如果 View 只知道 ICommand 类型的 View 模型上的属性,该命令的实现可能会完全改变(或方法可能被重命名),而 View 不知道。

关于wpf - MVVM ICommand 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926622/

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