【发布时间】:2021-09-11 09:21:08
【问题描述】:
使用 PRISM 框架,我们这样做:
<UserControl x:Class="ProjectName.MyView"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True">
</UserControl>
因此,我们的DataContext 设置了MyViewModel 的实例。
我试图在 ReactiveUI 中找到相同的技术,但我发现的只是这个link。它说您只需要在您的视图模型中实现IActivatableViewModel,并且如果您在视图代码隐藏中有WhenActivated 块,那么实现IViewFor<T> 视图模型就会被激活。
问题:
1)。 “被激活”是什么意思?我希望视图模型是由 ReactiveUI 自动设置的,但是这种行为不会发生,所以看起来我误解了“激活”的实际含义。
2)。 ReactiveUI 是否提供在视图激活时设置视图模型的服务?如果是,请提供代码示例。
【问题讨论】:
-
ReactiveUI 是基于视图模型的方法。因此,您将创建视图模型,导航将为视图模型创建一个视图。 github.com/reactiveui/ReactiveUI.Samples/tree/main/wpf/…这与棱镜相反,棱镜是视图优先,您创建一个视图,然后它为该视图创建一个视图模型。
标签: c# wpf prism reactiveui