问题标签 [reactiveui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
549 浏览

wpf - 来自 ReactiveAsyncCommand 的 UI 访问

我想注册一个打开文件并处理它的异步命令。

类似于这个问题

带用户确认的异步命令执行

但我不确定如何在这里应用该答案。我需要将路径值传递给处理器。

我该怎么做?

0 投票
1 回答
287 浏览

c# - ReactiveAsyncCommand.RegisterAsyncAction - 缺少完成通知?

我正在使用 ReactiveUI。在一个按钮上,我想调用一个网络服务。如果此调用成功,我想更新我的 UI。

使用 注册异步函数时RegisterAsyncFunction,您会得到一个可以订阅的 observable。这使您有机会在异步代码返回时运行代码,并且您还可以ObserveOnDispatcher()在 UIThread 上运行代码。

唯一的问题是 - 我的命令没有返回值。

RegisterAsyncAction认为是为此目的,但我找不到任何方法知道何时完成此操作。

在这种情况下,使用 ReactiveAsyncCommand 的正确方法是什么?

0 投票
3 回答
753 浏览

c# - 模拟 NewThreadScheduler.Default

我有一个代码

据我所知,应用.SubscribeOn(NewThreadScheduler.Default)使 IObserver 在新线程中运行。一切正常,但我对单元测试有疑问。

我进行了必要的更改,但在另一个线程中运行的此订阅不会等待。如何取消.SubscribeOn(NewThreadScheduler.Default)进行单元测试。没有这个任命,代码运行良好。

我已经尝试过响应式 UI testScheduler.With((scheduler)=>{... 在此处编写此代码...}); 但没有成功。我怎么解决这个问题?

0 投票
2 回答
2066 浏览

wpf - ReactiveUI 调用线程无法访问此对象,因为不同的线程拥有它

如果我在后面的代码中使用绑定,单击更改 IsBusy 后会出现错误

xml:

CS:

视图模型:

但是,如果我在 xaml 中进行绑定,则一切正常,如下所示:

CS:

xml:

为什么会这样?

0 投票
1 回答
1185 浏览

.net - ReactiveUI ObservableAsPropertyHelper / Reactive Extensions 内存泄漏?

我注意到在我使用 ReactiveUI 的 .NET 3.5 应用程序中,我有一个明显的内存泄漏,这似乎源于 ObservableAsPropertyHelper。我在这里创建了一个测试项目来演示它。

似乎由一个简单的 ObservableAsPropertyHelper 计算属性触发的每个更改通知都会泄漏内存。泄漏似乎源于 Reactive Extensions,而不是直接在 ReactiveUI 中,但我对 OAPH 的使用非常简单,以至于我想知道是否有人遇到过这个问题或可能有建议的修复。

内存泄漏的严重程度因 .NET 3.5(RxUI 2.4、Rx 1.1)和 .NET 4.0(RxUI 4.2、Rx 2.0.3)而异。.NET 3.5 中属性的每次更新都更接近线性。但是,.NET 4.0 中仍然存在泄漏。

我已经为我的 .NET 3.5 和 .NET 4.0 测试会话与测试应用程序上传了测试项目和一些分析器图像,这里

您可以在图像中看到对象图是不同的,因此我们可能完全在谈论两种不同的泄漏。在 4.0 会话 (40_RetentionGraph.png) 中,您可以看到分配最多的对象是 Ints(我的 OAPH 属性的类型)和 ConcurrentQueue。那里似乎存在某种循环引用问题。您还可以在 40_IntsAllocatedGCRootGrows.png 中看到实例与 GC 根的距离增加了。

在3.5版本(我最关心的)中,可以看到(35_Summary.png)分配最多的对象是Action和ScheduledObserver。对象图比 40 版本稍微复杂一点,完全不同。

我已经查看了这个讨论,但没有找到直接的答案:我的情况是,对 OAPH 进行非常简单的更新。任何有关此泄漏的可能解决方案的见解都值得赞赏。

0 投票
1 回答
147 浏览

wpf - 如何使用自定义控件修复 WPF 设计中的错误

我正在尝试创建一个执行以下技巧的区域控件

在运行时和设计时,RegionContentControl 中定义的控件将附加到 RegionControl。例如,我可以使用它来将东西注入状态栏。

无论如何,在运行时它工作正常,有时在设计器中它工作。但是有时在设计器中我会收到一个错误

我实现上述模式的代码如下。

我确信我的问题涉及控件仍然认为它们附加到 RegionContentControl 但我不确定如何正确分离它们。有什么建议么?

0 投票
1 回答
617 浏览

c# - TinyIOC 和多个用户指定的工厂类型

我目前正在尝试使用 TinyIOC 连接自定义ReactiveUI IMutableDependencyResolver。而且我正在为 ReactiveUI 想要向用户指定的工厂注册多个接口实现这一事实而苦苦挣扎。TinyIOC 似乎不支持。

每次再次调用 register 时,我的实现似乎都会覆盖以前的注册。有什么建议么?

0 投票
1 回答
559 浏览

c# - RxUI 填充 ObservableCollection 异步

是否有一种将项目添加到 ReactiveAsyncCommand 中的 ObservableCollection 的方法,或者我是否必须使用 Dispather?处理这种情况的 RxUI 方式是什么?

编辑:在 LoadData 运行时,应将项目一一加载到集合中。

0 投票
2 回答
393 浏览

viewmodel - 反应性 ToProperty 未设置属性

我的虚拟机中有 Sessions 属性

我正在尝试像这样在构造函数中设置它

FilterSessions 看起来像这样

它返回 10 个 SessionViewModel,但 _Sessions 从未设置。

0 投票
1 回答
489 浏览

refactoring - 任务 ToObservable 错误处理

我有以下方法负责调用我的服务类并将结果传递给另一个方法以将它们保存在我的数据库中:

如果服务器返回 500 或类似的值,_sessionService.GetSessions 将抛出 HttpRequestException。我有一个模拟这种行为的单元测试,并想测试我的方法优雅地处理错误。

有没有更好的方法以 Rx 方式传播错误?我试着做:

但这引发了我的错误,而不是将其传递给调用方法中的错误处理操作。我还计划将此方法与其他几种方法合并,并在合并的庄园中处理错误。

编辑:这是我订阅 observable 的方式

我将 null 传递给第一个参数,因为在此测试的上下文中我并不真正关心它