将View及其关联的ViewModel协同工作的最低要求是什么?
    当View由子视图组成时(与基于1x1或1xN基数的父级相关),ReactiveUI如何处理?就像一个带有2个子视图的视图,每个子视图都有一个ViewModel列表.

    根据文件:
    使用View Location的最简单方法是通过ViewModelViewHost控件,它是一个View(在Cocoa上,一个UIView/NSView,在基于XAML的平台上一个Control),它有一个ViewModel属性.设置ViewModel属性后,View Location将查找关联的View并将其加载到容器中.

    这就是我通常做的事情.您的所有Viewmodel/SubViewmodel等都只有一个相应的View实现IViewFor.我使用WPF,这只是意味着我必须在一个锅炉板ViewModel依赖属性中进行操作,这很好.然后注册ReactiveUI的IoC容器,Splat:

    要使用View Location,您必须先通过Splat的服务位置功能注册类型.
    Locator.CurrentMutable.Register(() => new ToasterView(), typeof(IViewFor));
    因此,基本上每当View在其上承载一个/多个ViewModelViewHost控件时,一旦您将viewmodel设置或绑定到它,它就会查找并加载已注册的视图. ViewModelViewHost托管View的容器控件.

    视图知道ViewModel,但ViewModel不知道视图.
    就层次结构而言,ViewModelViewHost将基于ViewModel绑定到它的任何内容进行更新,并且它们将一直向下乌龟.通常我的顶级视图几乎都是一堆ViewModelViewHost控件,它们只是从那里向下钻取.使用ReactiveUI的.WhenAny() 方法,您可以轻松地在ViewModels/SubViewModels等层次结构中上下查看属性,而无需担心重新订阅或空检查.