gpt4 book ai didi

c# - 使用 ReactiveUI 7 调用命令参数

转载 作者:太空狗 更新时间:2023-10-29 19:46:31 24 4
gpt4 key购买 nike

我正在切换到最新版本的 ReactiveUI (7.0),我遇到了一些不兼容问题,想知道处理此问题的建议方法:

响应式用户界面 6.x

Texts.Events().MouseUp
.InvokeCommand(ViewModel, x => x.DoSomething);

现在抛出一个异常:

Command requires parameters of type System.Reactive.Unit, but received parameter of type System.Windows.Input.MouseButtonEventArgs.

我使用以下代码解决了这个问题,但这是正确的方法吗?

Texts.Events().MouseUp
.Select(x => Unit.Default)
.InvokeCommand(ViewModel, x => x.DoSomething);

最佳答案

命令是预期的参数是 Unit,这意味着没有输入参数的命令,在 ReactiveUI 的情况下是 ReactiveCommand。这就是为什么在上面的示例中您必须将 MouseButtonEventArgs 从事件“转换”为 Unit。为此,我创建了一个辅助扩展方法 ToSignal:

public static IObservable<Unit> ToSignal<TDontCare>(this IObservable<TDontCare> source) 
=> source.Select(_ => Unit.Default);

\\ The subscription will be then
Texts.Events().MouseUp
.ToSignal()
.InvokeCommand(ViewModel, x => x.DoSomething);

关于c# - 使用 ReactiveUI 7 调用命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41229903/

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