如何 运行 来自相对 ViewModel 的方法并获取其 return 值?

How do I run a method from a relative ViewModel and get its return value?

为了更好地展示我的问题,我绘制了一张图表,展示了我的 ViewModel 层次结构到目前为止的样子:

ViewModel hierarchy

我想要实现的是简单地从 ScriptEditorViewModel 调用一个方法并询问它,如果当前正在 EditObjectViewModel[=30 中编辑的对象=] 已在脚本中指定。 稍后我还想向 ScriptEditorViewModel 发送一些信息,如果它不存在,让它为对象生成一个脚本。

ScriptEditorViewModelProjectManagementViewModel是我程序中的2个独立的tab,基本上是同时操作的

是否可以这样做,如果可以,这是一个好方法吗?

注意:我目前使用 ReactiveUI 作为我的 MVVM 框架,但也欢迎任何其他 MVVM 解决方案。

使用 MVVM 模式时,您希望解耦组件。

  • 在 View 部分有 xaml 绑定到 ViewModel 中的数据和命令。
  • 在 ViewModel 中,您应该保留显示的数据和使用该数据执行某些操作的逻辑。耦合多个 ViewModel 并不是最明智的做法——保持它们的逻辑分离。如果你有一个命令方法,它处理的所有数据都应该出现在它的 ViewModel 中。对于任何更复杂的事情,您应该考虑与某种服务或数据库进行通信。
  • 模型部分由此而来。在这里你想创建你想要存储的东西的模型,而不是必须出现在视图中。

我不知道我是否理解你的问题,但在你的解决方案中包含数据库或任何类型的 'persistence layer' 应该可以解决访问特定信息的问题。您可以为开始创建一些内存存储。