我对 WPF 和 MVVM 都很陌生,在尝试设置DataContext
到两个单独视图中的 ViewModel 的同一实例。
这是因为:
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
将为每个视图创建一个新的视图模型实例。
为了解决这个问题,我决定创建一个类来存储我使用的每个 ViewModel 的静态实例。然后在cs
然后我将设置每个视图的文件DataContext
从这个静态类到适当的 ViewModel。
这可行,但对于可能同时需要 ViewModel 的多个实例的大型程序来说似乎不是最好的主意。
有什么更好的方法来解决这个问题 - 有没有好的方法可以使用同一个 ViewModel 实例来拥有多个视图?
或者这种方法是不好的做法 - 我应该为每个 ViewModel 设计一个具有一个视图的程序吗?
您可以在 App.xaml 中实例化该视图模型,以便整个应用程序可以访问它。
<Application.Resources>
<local:ViewModel x:Key="sharedViewModel" />
</Application.Resources>
然后,在您的视图中,当您想要使用该数据上下文时,您可以执行以下操作......
DataContext="{StaticResource sharedViewModel}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)