gpt4 book ai didi

.net - AsyncCommand CanExecute 处理程序

转载 作者:行者123 更新时间:2023-12-02 15:09:20 26 4
gpt4 key购买 nike

我正在使用@Stephen-Cleary AsyncCommand implementation在 WPF (.NET 4.0) 中,现在我试图找出如何在命令定义期间指定 CanExecute 处理程序。

通常我创建这样的命令:

            SaveCommandAsync = AsyncCommand.Create(async token =>
{
//async code
});

我没有看到任何 Create 重载,因此我可以指定 CanExecute 逻辑。

谢谢,

伊戈尔

最佳答案

使用 Stephen Cleary 的 Nito.Mvvm.Async项目来实现您所需要的。

添加对 package 的 nuget 引用: <package id="Nito.Mvvm.Async" version="1.0.0-eta-05" targetFramework="net45" />

创建 Xaml 绑定(bind):

<Button Content="Toggle" Command="{Binding MyAsyncCommand}"></Button>

创建 CustomAsyncCommand,指定 CanExecute 函数

MyAsyncCommand = new CustomAsyncCommand(AsyncAction, x=> !_isWorking);

在 AsyncAction 中执行一些异步工作

private async Task AsyncAction(object obj) {
_isWorking = true;
MyAsyncCommand.OnCanExecuteChanged();
await Task.Delay(2000);
_isWorking = false;
MyAsyncCommand.OnCanExecuteChanged();
}

最后:enjoy .

关于.net - AsyncCommand CanExecute 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887595/

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