gpt4 book ai didi

c# - WPF 中的命令,实现问题

转载 作者:行者123 更新时间:2023-11-30 22:47:28 25 4
gpt4 key购买 nike

我知道我已经就此提出了问题,但有些事情令人困惑。我正在做一个关于 WPF MVVM 模式的教程,但似乎我无法正确理解,因为在教程中,它没有详细说明如何实现 ICommand 接口(interface)。 (不确定它到底有多正确?!!)

我有以下 ICommand 实现:

class ViewCommand : ICommand
{
#region ICommand Members

private Predicate<object> _canExecute;
private Predicate<bool> _execute(object param);

public ViewCommand(Action<object> action)
{

}

public bool CanExecute(object parameter)
{
return _canExecute == null ? true : _canExecute(parameter);
}

public void Execute(object parameter)
{
_execute(parameter);
}

public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}

#endregion
}

现在这个用途:

class StartViewModel : ViewModel
{
public ViewCommand startViewCommand;

public ViewCommand StartCommand
{
get
{
if (startViewCommand == null)
startViewCommand = new ViewCommand(
param => this.StartApplication()); // StartApplication returns void
return startViewCommand;
}
}

我不知道我的 ViewCommand 的构造函数是什么类应该做什么?在StartViewModel class 它在构造函数中使用 lambda 表达式,因此需要一些委托(delegate),但我不确定它与 Execute 和 CanExecute 一起工作意味着什么以及如何工作。我放了一个 Action<object> , 但它可能是错误的...

最后,有人可以指点我解释它的关于如何实现 ICommand 的教程吗?

谢谢!

最佳答案

看看 Josh Smith 的 tutorial注意中继命令,他在哪里执行。

关于c# - WPF 中的命令,实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218764/

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