gpt4 book ai didi

wpf - MVVM View 优先方法如何更改 View

转载 作者:行者123 更新时间:2023-12-03 02:23:21 26 4
gpt4 key购买 nike

有谁知道如何在 MVVM View-First-Approach 中更改屏幕( View )( View 实例化 ViewModel:

DataContext="{Binding Source={StaticResource VMLocator},
Path=Find[EntranceViewModel]}"

)

例如:在我的主窗口(Shell)中,我显示了带有按钮“GoToBeach”的入口 View 。

<Window>
<DockPanel>
<TextBox DockPanel.Dock="Top" Text="{Binding Title}" />
<view.EntranceView DockPanel.Dock="Top" />
</DockPanel>
</Window>

单击按钮时,我想摆脱“EntranceView”并显示“BeachView”。我真的很好奇是否有人知道一种方法来保持 View 优先方法并将屏幕( View )更改为“BeachView”。我知道有多种方法可以在 ViewModel-First 方法中实现它,但这不是问题。也许我在 mvvm 调查中遗漏了一些东西,看不到树木的木材......否则我是希望能有启发性的讨论。

最佳答案

一种可能性是将所有 View 都放在(MainWindow(Shell)中)并使用触发器来提高其可见性。但是在 MainWindow 中声明许多不同的屏幕( View )对我来说并不合适......

这个问题是在阅读 John Papas 博客上发现的将 MEF 与 MVVM 结合使用的好方法时出现的:Simple ViewModel Locator for MVVM: The Patients Have Left the Asylum 。但是,尽管 View 和 View 模型的结合很好,但似乎没有办法改变令我满意的屏幕。 :)

所以在我看来,如果你有很多屏幕( View ),你最好使用 ViewModel-First-Approach...

关于wpf - MVVM View 优先方法如何更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2692390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com