微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactiveUI 是否提供 PRISM ViewModelLocator 之类的服务?

如何解决ReactiveUI 是否提供 PRISM ViewModelLocator 之类的服务?

使用 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 是否提供这种在视图激活时设置视图模型的服务?如果是,请提供代码示例。

解决方法

“激活”是什么意思?

激活用于推迟视图模型的设置,直到加载相应的视图:https://www.reactiveui.net/docs/handbook/when-activated

我希望 ReactiveUI 自动设置视图模型...

你的期望是错误的。在 ReactiveUI 中,视图是基于视图模型解析的(而不是视图使用 Prism 中的视图模型定位器解析视图模型)。

ReactiveUI 是否提供这种在视图被激活时设置视图模型的服务?

没有。您应该自己创建视图模型并让 ReactiveUI 解析相应的视图。查看文档中的 Routing section 以获取示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。