c# - Prism 7.2 WPF - ViewModelLocationProvider 的可能问题
问题描述
我在 WPF 项目中使用 Prism 7.2.0.1422 并且有些东西我无法理解。
我正在尝试自定义 ViewModelLocationProvider,特别是使用“SetDefaultViewModelFactory”方法。所以我重写了 App.xaml.cs 中的方法“ConfigureViewModelLocator”,只是为了测试我试图引发一个异常:
protected override void ConfigureViewModelLocator()
{
base.ConfigureViewModelLocator();
ViewModelLocationProvider.SetDefaultViewModelFactory(viewModelType =>
{
throw new Exception("test ViewModelLocationProvider.SetDefaultViewModelFactory");
});
}
当我执行代码时,使用了“ConfigureViewModelLocator”方法,因此应该修改 ViewModelLocationProvider。但是“MainWindow”使用它的视图模型“MainWindowViewModel”正常打开。我使用相同的逻辑通过以下代码引发异常,以确保我没有犯错,这次抛出异常。
ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver((viewType) =>
{
throw new Exception("test ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver");
});
我还测试了使用https://github.com/PrismLibrary/Prism-Samples-Wpf上的示例项目“09-ChangeConvention”中的方法“SetDefaultViewModelFactory”自定义 ViewModelLocationProvider 。我注意到了同样的问题...
也许我做错了什么,或者“SetDefaultViewModelFactory”的自定义被忽略了......有人可以帮助我吗?谢谢
解决方案
推荐阅读
- node.js - Joi 验证 - 如何根据数组中存在的另一个键来要求或可选字段?
- selenium - org.openqa.selenium.os.OsProcess checkForError 和 org.apache.commons.exec.ExecuteException:进程因 Selenium ChromeDriver 错误而退出
- wix - WiX 通过属性静默安装条件
- c++ - 带有 enable_if 和重载的 SFINAE
- symfony - 如何在 symfony 4.2 中根据子域设置默认数据库
- ffmpeg - 在ffmpeg中将RTSP流连续保存到具有特定长度(10分钟)的多个mp4文件中
- arrays - 数组如何通过Swift按多个属性排序?
- java - 无法加载 admob 广告错误:3 ERROR_CODE_NO_FILL
- php - 将数据保存到数据库后发送电子邮件
- kubernetes - kubectl 补丁部署导致 'The "" is invalid'