如何解决如何从相对 ViewModel 运行方法并获取其返回值?
为了更好地展示我的问题,我画了一张我的 ViewModel 层次结构到目前为止的样子:
我想要实现的只是简单地从 ScriptEditorViewModel 调用一个方法,并询问它是否在脚本中指定了当前在 EditObjectViewModel 中编辑的对象. 稍后我还想向 ScriptEditorViewModel 发送一些信息,并让它为不存在的对象生成脚本。
ScriptEditorViewModel 和 ProjectManagementViewModel 在我的程序中是 2 个独立的选项卡,它们基本上是同时运行的。
是否可以这样做,如果可以,这是一个好方法吗?
注意:我目前使用 ReactiveUI 作为我的 MVVM 框架,但也欢迎任何其他 MVVM 解决方案。
解决方法
在使用 MVVM 模式时,您希望解耦组件。
- 在 View 部分有 xaml 绑定到 ViewModel 中的数据和命令。
- 在 ViewModel 中,您应该保留呈现的数据以及对这些数据执行某些操作的逻辑。耦合多个 ViewModel 并不是最明智的做法 - 保持它们的逻辑分离。如果你有一个命令方法,它处理的所有数据都应该存在于它的 ViewModel 中。对于更复杂的情况,您应该考虑与某种服务或数据库进行通信。
- 因此是模型部分。在这里,您要创建要存储且不需要出现在视图中的内容的模型。
我不知道我是否很好地理解了您的问题,但是在您的解决方案中包含数据库或任何类型的“持久层”应该可以解决访问特定信息的问题。您可以为开始创建一些内存存储。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。