Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ViewModel中构造并记录IObservable_C#_.net_Mvvm_System.reactive_Reactiveui - Fatal编程技术网

C# 在ViewModel中构造并记录IObservable

C# 在ViewModel中构造并记录IObservable,c#,.net,mvvm,system.reactive,reactiveui,C#,.net,Mvvm,System.reactive,Reactiveui,我最近一直在做一些涉及Rx.NET的UI工作;特别是使用ReactiveUI。我非常喜欢ReactiveUI帮助您构建ViewModel交互的声明式方式 然而,由于ReactiveUI中的大多数逻辑最终都会出现在构造函数中,对于复杂的ViewModels来说,最终可能会有点难以导航并找到您要查找的位,以及记录不同部分的用途 你对这两个问题有什么看法?将一些可观察的定义移动到私有方法?创建自己的扩展方法(“运算符”) 期待听到其他人对此的看法 看到人们获得如何正确使用RxUI的“禅宗”真是太酷了,

我最近一直在做一些涉及Rx.NET的UI工作;特别是使用ReactiveUI。我非常喜欢ReactiveUI帮助您构建ViewModel交互的声明式方式

然而,由于ReactiveUI中的大多数逻辑最终都会出现在构造函数中,对于复杂的ViewModels来说,最终可能会有点难以导航并找到您要查找的位,以及记录不同部分的用途

你对这两个问题有什么看法?将一些可观察的定义移动到私有方法?创建自己的扩展方法(“运算符”)


期待听到其他人对此的看法

看到人们获得如何正确使用RxUI的“禅宗”真是太酷了,太棒了

我通常尝试按照用户工作流的顺序组织交互的顺序,即首先连接输入,然后将其连接到表单的动作部分(通常通过ReactiveCommands),最后通过ToProperty将其连接到输出

我会通过Select或SelectMany折叠大型查询—除非您的运算符确实可以正常工作,否则我会避免定义自定义运算符


此外,如果您的ViewModels变得太大,仍然有人建议它可能试图做太多的事情,应该将其拆分,甚至可以说UX本身可能太复杂,这取决于您的受众

看到人们获得如何正确使用RxUI的“禅宗”真是太酷了,太棒了

我通常尝试按照用户工作流的顺序组织交互的顺序,即首先连接输入,然后将其连接到表单的动作部分(通常通过ReactiveCommands),最后通过ToProperty将其连接到输出

我会通过Select或SelectMany折叠大型查询—除非您的运算符确实可以正常工作,否则我会避免定义自定义运算符


此外,如果您的ViewModels变得太大,仍然有人建议它可能试图做太多的事情,应该将其拆分,甚至可以说UX本身可能太复杂,这取决于您的受众

非常感谢和合理的建议!如果有更多的人有他们想分享的见解,我会在几天内把这个问题留给更多的答案。毕竟,我想这是一个有待主观回答的问题:-)非常受欢迎的合理建议!如果有更多的人有他们想分享的见解,我会在几天内把这个问题留给更多的答案。毕竟,这是一个有待主观回答的问题,我想:-)我也不觉得自己对ctor中的所有代码都很干净。:)为了使其系统化,我创建了一个名为SetupHandlerXxx()的私有方法,并在其中进行了反应式lamdbation。可能是杀伤力过大,但在我的蜥蜴脑中组织得很好。我也没有感觉到计算机中的所有代码是干净的。:)为了使其系统化,我创建了一个名为SetupHandlerXxx()的私有方法,并在其中进行了反应式lamdbation。也许杀伤力太大了,但它在我蜥蜴的大脑中组织得很好。