gpt4 book ai didi

c# - 如何在 MVVM 中使用相同的 ViewModel 拥有多个 View ?

转载 作者:太空狗 更新时间:2023-10-29 22:56:46 26 4
gpt4 key购买 nike

我是 WPF 和 MVVM 的新手,在尝试将 DataContext 设置为两个单独 View 中我的 ViewModel 的同一实例时遇到了一个问题。

这是因为:

<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>

将为每个 View 创建一个新的 View 模型实例。

为了解决这个问题,我决定创建一个类来存储我使用的每个 ViewModel 的静态实例。然后在每个 View 的 cs 文件中,我将 DataContext 设置为来自该静态类的适当 ViewModel。

这可行,但对于可能同时需要 ViewModel 的多个实例的大型程序来说似乎不是最佳主意。

解决此问题的更好方法是什么 - 是否有合理的方法让多个 View 使用同一个 ViewModel 实例?

或者这种方法是不好的做法 - 我应该为每个 ViewModel 设计一个 View 的程序吗?

最佳答案

您可以在 App.xaml 中实例化该 View 模型,以便整个应用程序都可以访问它。

<Application.Resources>
<local:ViewModel x:Key="sharedViewModel" />
</Application.Resources>

然后在您的 View 中,当您想要使用该数据上下文时,您可以执行以下操作...

DataContext="{StaticResource sharedViewModel}"

关于c# - 如何在 MVVM 中使用相同的 ViewModel 拥有多个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537011/

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