gpt4 book ai didi

ReactiveUI:如何正确地将参数传递给 ReactiveCommand.CreateFromTask

转载 作者:行者123 更新时间:2023-12-04 14:55:35 25 4
gpt4 key购买 nike

当执行绑定(bind)到控件的 ReactiveCommand 时,我想将一个参数从我的 View 传递给我的 ViewModel。参数的类型应为 IJcUser
所以我这样定义命令:

public ReactiveCommand<IJcUser, Unit> UserTouchCommand;

UserTouchCommand = ReactiveCommand.CreateFromTask(user => RootViewModel.DisplayUserProfile(user));
DisplayUserProfile的签名好像

Task DisplayUserProfile(IJcUser user);

但是编译器提示因为 user来自类型 CancelationToken而不是预期的 IJcUser
我终于找到了解决方案,但不明白为什么第一种方法不起作用。
UserTouchCommand = ReactiveCommand.CreateFromTask<IJcUser>(RootViewModel.DisplayUserProfile);

最佳答案

I finally I found a solution but don't understand why the first approach did not work.



因为您使用了 ReactiveCommand.CreateFromTask 的错误重载。方法。代表 user => RootViewModel.DisplayUserProfile(user)可能是 Func<CancellationToken, Task>Func<IJcUser, Task> .除非您告诉编译器,否则编译器无法知道是哪一个:
Func<IJcUser, Task> x = user => DisplayUserProfile(user);
UserTouchCommand = ReactiveCommand.CreateFromTask(x);

或者您可以明确说明类型参数:
UserTouchCommand = ReactiveCommand.CreateFromTask<IJcUser>(DisplayUserProfile);

关于ReactiveUI:如何正确地将参数传递给 ReactiveCommand.CreateFromTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41851919/

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