将信息从一个视图模型传递到另一个视图模型

5

alt text

我正在使用M-V-VM架构模式。

我希望我的程序有两个视图,视图A视图B。我用视图A启动程序。当我在视图A中双击一个项目时,程序会显示视图B

如何构建我的程序以实现这一目标?

2个回答

2

有一个ViewModel如下:

  • ParentViewModel
    • ChildViewModel1
      • IsVisible
      • 一个命令,用于切换ChildViewModel的IsVisible属性
    • ChildViewModel2
      • IsVisible

和以下View:

  • ParentView
    • ViewPart1
      • 可见性绑定到ChildViewModel1.IsVisible(使用BooleanToVisibilityConverter)
      • 按钮绑定到切换可见性的命令
    • ViewPart2
      • 可见性绑定到ChildViewModel1.IsVisible(使用BooleanToVisibilityConverter)

这样应该可以解决你的问题。


不可见的对象是否仍然会保留在内存中? - Kiang Teng
是的。就像你说的一样,它们只是不可见的。 - decyclone
另一个问题,ChildViewModel2的角色是什么? - Kiang Teng
当您组合多个小视图以构成一个视图时,例如在窗口中我们有标题栏、内容和状态栏,您需要为每个视图创建视图模型。在上面的示例中,我演示了由两个其他视图组成的视图。这反过来将需要一个主视图模型,其中包含两个子视图模型,映射到相应的视图。 - decyclone

1

您可能会对WPF应用程序框架(WAF)BookLibrary示例应用程序感兴趣。它展示了一个带有两个独立视图和两个独立视图模型的主/细节视图。此外,它还有一个模态对话框,包括一个自己的ViewModel,用于与所选书籍相关联的“借出”操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接