ReactiveCommandが実行されているコントロールにバインドされているときに、そのビューのパラメータをViewModelに渡したいとします。ReactiveUI:パラメータをReactiveCommand.CreateFromTaskに正しく渡す方法
public ReactiveCommand<IJcUser, Unit> UserTouchCommand;
UserTouchCommand = ReactiveCommand.CreateFromTask(user => RootViewModel.DisplayUserProfile(user));
DisplayUserProfile
の署名が
Task DisplayUserProfile(IJcUser user);
のように見える。しかしuser
がタイプからなので、コンパイラは文句:パラメータは、だから私はこのようなコマンドを定義するタイプIJcUser
である必要がありますCancelationToken
期待通りではないIJcUser
私は結局解決策を見つけましたが、なぜ最初のアプローチがうまくいかなかったのか理解できません。
UserTouchCommand = ReactiveCommand.CreateFromTask<IJcUser>(RootViewModel.DisplayUserProfile);
は、コンパイラは、コマンドの宣言からこれを取得することはできませんでしょうか? – Thomas
いいえ、あなたが言っていない限り、あなたのfuncがFuncまたはFunc ではなく、Func であることをどのように知っていると思いますか?それはできません。 –
mm8
'ReactiveCommond.CreateFromTask'にパラメータを渡すのに非常に役立ちます。 ReactiveUIは非常に混乱しています(オーバーロードされた型、型控除、オプションのパラメータがたくさんあります)。 – Felix