gpt4 book ai didi

c# - 什么替代了 WinRT 中的 CommandManager?

转载 作者:IT王子 更新时间:2023-10-29 04:39:28 26 4
gpt4 key购买 nike

我开始使用 Metro 风格的应用程序(我知道我们不应该称它为 Metro,但我永远记不起它应该叫什么...),并且我正在实现一个 用于 MVVM 的 DelegateCommand 类。在 WPF 中,ICommand.CanExecuteChanged 事件通常是这样实现的:

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

但是 CommandManager 类在 WinRT 中不存在......是否有其他东西代替?还是我们应该自己明确触发此事件?

最佳答案

在 WinRT 中,您必须手动更新/引发 CanExecuteChanged。没有 CommandManager 可以全局执行此操作。您可以将此视为颈部疼痛,或者由于不会经常调用 CanExecute 而显着提高性能。这确实意味着您必须考虑以前不必考虑的级联属性更改。但事实就是如此。手册。

public void RaiseCanExecuteChanged()
{
if (CanExecuteChanged != null)
CanExecuteChanged(this, EventArgs.Empty);
}

关于c# - 什么替代了 WinRT 中的 CommandManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030697/

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