gpt4 book ai didi

c# - 在 MVVM 中实现 ICommand 时,我遗漏了一些东西

转载 作者:行者123 更新时间:2023-12-01 13:57:51 25 4
gpt4 key购买 nike

总的来说,我对 C# 和 WPF 非常陌生,因为我有 LAMP 网络应用程序背景。我已经尝试按照有关该主题的几个教程进行操作,但是它们让我感到困惑。

https://rachel53461.wordpress.com/2011/05/08/simplemvvmexample/ http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

在第一个教程中,应用程序以一个简单的界面打开。一个文本框和两个按钮。当您更新 ProductId 文本框时,从 0 变为 1,“获取产品”按钮变为事件状态。当您单击“获取产品”按钮时,会出现 DataTemplate 的内容。我看不出这些事情到底发生在哪里。是什么导致按钮变为事件状态?是什么导致表单出现?

希望你们能为我简化它 =)

最佳答案

按钮被激活或停用,因为它们绑定(bind)到 ICommandICommand 包含一个 CanExecute属性,确定按钮是否处于事件状态。

I can't see where these things are actually happening.

命令使用委托(delegate):

 _getProductCommand = new RelayCommand(
param => GetProduct(),
param => ProductId > 0
);

ProductId > 0(委托(delegate)返回 true)时,第二个委托(delegate)导致命令被激活(CanExecute 变为 true)。

当您单击按钮时,命令的 Execute 方法将触发并执行操作。

关于首先启动的窗口,请查看标题为“启动示例”的部分 - app.xaml.cs 中有用于首先显示窗口的代码。

关于c# - 在 MVVM 中实现 ICommand 时,我遗漏了一些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043206/

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