我正在使用以下文章作为入门代码: 在 WPF MVVM简单注入器 WPF 集成
中的视图之间导航
目标:
尝试使用按钮绑定命令和简单注入器以 WPF 形式从视图 1 转到视图 2,以将依赖项注入视图。注意:这些依赖项是保存来自外部来源的数据的存储库。
问题:
使用 Simple Injector 将依赖项注入到我的 MainWindow 和 MainWindowViewModel 后,我的按钮不再更改我的当前视图(到我的另一个视图)。当使用 Visual Studio 并使用断点进行调试时,代码似乎永远停留在CanExecute
RelayCommand.cs 函数中的循环中(请参阅在 WPF MVVM 中的视图之间导航),其中某些东西一遍又一遍地调用它。我无法对CanExecute
函数进行更多调试,因为有很多代码被传递(来自 DLL 等)。当不使用断点时,它就好像我的按钮什么也没做一样。
我在输出窗口中没有看到按钮错误,也没有抛出异常。命令绑定有效,因为我可以看到OnGo2Screen
在调试时调用了 MainWindowViewModel.cs 中的函数。调用后OnGo2Screen
,它按预期移动代码,直到卡在CanExecute
.
我试过
的我检查了我的 MainWindow 的数据上下文,我可以看到它具有所有正确的功能。
我为“在 WPF MVVM 中的视图之间导航”一文创建了一个单独的项目,我能够很好地更改视图。但是每当我尝试使用 Simple Injector 时,我的按钮就会坏掉。
我注意到,当不使用 Simple Injector 时,代码从CanExecute
函数移动到CanExecuteChanged
EventHandler 并执行删除和添加修改器,然后按预期更改视图。但是,当使用 Simple Injector 时,它不会这样做。
我使用我的 App.xaml.cs 作为启动程序的代码,其中我的 App.xaml 具有“页面”的构建操作。
SimulationCaseView 是视图 1(默认起始视图)。
StreamsView 是视图 2(只是另一个视图)。
UserControl3 是视图 3(只是另一个视图)。
下面是我的代码。请参阅为任何剩余代码提供的两个链接,因为我的很多功能都基于此。
一只斗牛犬
叮当猫咪
相关分类