gpt4 book ai didi

c# - 有什么方法可以避免实现 ICommand 以在 MVVM 中使用 Button?

转载 作者:行者123 更新时间:2023-12-03 10:56:39 24 4
gpt4 key购买 nike

我正在开发一个非常简单的应用程序,一个带有几个按钮的 View 。我想可以使用 View 模型中按钮的单击事件。

但是我只找到了需要使用 blend 中的 Interactivity.dll 的示例,或者我必须实现 ICommand 接口(interface)或其他一些解决方案。

我想知道现在是否有任何解决方案不需要实现 ICommand 或使用像 MVVM Light 这样的框架。我想使用最简单的解决方案。

谢谢。

最佳答案

你为什么这么讨厌使用ICommand ?如果您要关注 MVVM模式,它是实现 UI 和业务逻辑层分离的完美方式。

ICommand 最基本的实现就是这样

/// <summary>
/// a very simple ICommand implementation
/// </summary>
public class BasicCommand: ICommand
{
private readonly Action _execute;

public BasicCommand(Action execute)
{
_execute = execute;
}

public bool CanExecute(object parameter)
{
return true;
}

public void Execute(object parameter)
{
_execute?.Invoke();
}

public event EventHandler CanExecuteChanged;
}
ICommand 的更高级实现如 MVVM-Light RelayCommand 还可以根据需要通过 CanExecute 机制禁用任何绑定(bind)控件(例如按钮或菜单项),这种方式比尝试设置 Button.InEnabled 更加解耦和简洁。

关于c# - 有什么方法可以避免实现 ICommand 以在 MVVM 中使用 Button?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53350016/

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