Невозможно зарегистрировать виртуальную машину через Prism Navigation

Я создаю приложение WPF Core 3.1 с помощью Prism 7. В одном из представлений я пытаюсь зарегистрировать модель представления для навигации PRISM через:

containerRegistry.RegisterForNavigation<ViewA, ViewAViewModel>();

И при необходимости я запрашиваю навигационную службу PRISM для перехода к просмотру с помощью Region Manager.

_regionManager.RequestNavigate(RegionNames.ContentRegion, "ViewA");

Навигация к представлению завершена, и я могу видеть представление в определенной области, но модель представления не назначена представлению.

Я попытался вручную зарегистрировать модель представления с помощью ViewModelLocationProvider, но по-прежнему модель представления не назначена.

ViewModelLocationProvider.Register<ViewA, ViewAViewModel>();

Но если я использую свойство PRISM Autowire в представлении, тогда модель представления обнаруживается и назначается представлению.

prism:ViewModelLocator.AutoWireViewModel="True"

Класс модели представления, объявленный с использованием интерфейса IConfirmNavigationRequest, необходимого для обработки запросов навигации

public class ViewAViewModel : RegionViewModelBase , IConfirmNavigationRequest

Я не могу понять, что мне здесь не хватает.

1 ответ

Единственное, что я вижу не так, это то, что вам нужно использовать интерфейс INavigationAwareне IConfirmNavigationRequest. Я предполагаю RegionViewModelBase орудия BindableBase уже.

public class ViewAViewModel : RegionViewModelBase, INavigationAware
Другие вопросы по тегам