首页 > 解决方案 > 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”的自定义被忽略了......有人可以帮助我吗?谢谢

标签: c#wpfmvvmprismprism-7

解决方案


推荐阅读