Prism Sample 9 ChangeConvention

上个例子跳过了ViewModelLocator,因是采用约定的方式最为方便。

如果有人要修改约定,自定义view和viewModel的默认自动定位方式,怎么办呢?

在app.xaml.cs重写以下方法:

protected override void ConfigureViewModelLocator()
        {
            base.ConfigureViewModelLocator();

            ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver((viewType) =>
            {
                var viewName = viewType.FullName;
                var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName;
               var viewModelName = $"{viewName}ViewModel, {viewAssemblyName}";
               
                return Type.GetType(viewModelName);
            });
        }

其中,{viewname}ViewModel这里直接在同一目录下将view名称+ViewModel的文件名默认关联。

如果要修改路径或文件名,修改这个变量即可。

虽然,我修改没有成功。

posted @ 2021-06-07 20:29  cbaa  阅读(71)  评论(0编辑  收藏  举报