В настоящее время я занимаюсь разработкой приложения WPF и использую Prism Framework и контейнер Unity. Пока все отлично работает. Агрегатор событий работает нормально, а также внедрение зависимостей, и навигация делает все, что нужно.
Но у меня сейчас есть проблема, которую я не смог решить после долгого исследования. Я надеюсь, что вы можете помочь мне с проблемой.
Описание проблемы:
- Программа запускается, и
MainWindow
отображает ViewA
. - В пределах
ViewA
, отображается частичное SharedContentView
. - Я перехожу к
ViewB
. ViewB
также отображает частичное представление SharedContentView
. - Если я теперь вернусь к «ViewA», частичное представление
SharedContentView
будет по-прежнему отображаться, но содержимое * 1024 не будет отображаться* будет больше отображаться на ViewA
.
Каким-то образом связь между View и ViewModel, кажется, разрешается? : o
ВАЖНОЕ ПРИМЕЧАНИЕ:
В App.xaml.cs
я регистрирую вид как одиночный:
containerRegistry.RegisterSingleton<SharedContentView>();
containerRegistry.RegisterSingleton<SharedContentViewModel>();
Модель View / ViewModel должна создаваться только один раз.
Ссылка на образец приложения:
https://github.com/JackDaniel91/Prism.WPF.SharedView
Шаги для воспроизведения:
- Нажмите кнопку «Перейти к ViewA»
- Нажмите кнопку «Перейти к ViewB»
- Нажмите кнопку «Перейти кViewA "
- Проблема: элементы SharedContentView в ViewA пусты.