在我的应用程序中,我使用了多个具有相同视图 - 视图模型对的窗口。我也使用统一容器。如何使用统一容器区分多个视图/视图模型对
我最近通过Grant Frisken(代码项目)添加了一个翻译模块,WPF使用RESX文件进行本地化。现在,如果我改变语言,viewmodel的构造函数会再次执行,并且不存储变量。该视图仍然将其datacontext设置为该视图模型的某个实例,但所有视图都使用相同的视图模型。
目前我认为我使用了错误的方法,但是更好的解决方案是什么?
打开一个新的窗口:
var openWindow = new MyView();
openWindow.Show();
在我的XAML:
DataContext="{Binding MyViewModel, Source={StaticResource Locator}}"
在我的视图模型
private IMyWindowData _data;
[InjectionConstructor]
protected SettingsBaseViewModel(IMyWindowData data)
{
_data = windows;
}
这一切,直到我实现了新的语言模块正常工作。当我选择更改语言时,变量_data消失。然后注入构造函数具有其他窗口的数据也是同一类型的。
我拼命搜查互联网,但没有找到答案。