gpt4 book ai didi

c# - 当事件在 View 中触发时,ReactiveUI 在 ViewModel 上调用命令

转载 作者:行者123 更新时间:2023-11-30 20:41:01 26 4
gpt4 key购买 nike

我正在使用 Reactive UI 事件扩展到 Reactive UI。

只是尝试获取事件以连接到 ViewModel。

最初我在 View 的构造函数中有

        this.Events().KeyDown.Select(x => x.Key).InvokeCommand(ViewModel.NewTextCommand);

但是,这在构造函数中存在问题, View 模型尚不存在。我考虑过添加 WhenAnyValue 并设置调用,但不确定这是否会导致内存泄漏。

目前我有

        this.Events().KeyDown.Select(x => x.Key).Subscribe(
x =>
{
if (ViewModel != null)
{
if (ViewModel.NewTextCommand.CanExecute(x))
{
ViewModel.NewTextCommand.Execute(x);
}
}
});

虽然这看起来有点笨拙。

最佳答案

您绝对可以使用WhenAnyValue,但还有一个内置的InvokeCommand overload在 ReactiveUI 中执行此操作:

this.Events().KeyDown.Select(x => x.Key).InvokeCommand(this, v => v.ViewModel.NewTextCommand);

关于c# - 当事件在 View 中触发时,ReactiveUI 在 ViewModel 上调用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686943/

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