Более новый разработчик, работающий над моим вторым приложением и первым использующий Prism 7.1.
Я надеюсь получить небольшую помощь с правильным доступом к ViewModel, зарегистрированному в Shell.xaml.cs.
Вот с чем я работаю:
App.xaml.cs
public partial class App
{
protected override Window CreateShell()
{
return Container.Resolve<Shell>();
}
protected override void RegisterTypes(IContanerRegistry containerRegistry)
{
containerRegistry.Register<ShellViewModel>();
}
}
Shell.xaml.cs
public partial class Shell : MetroWindow
{
public Shell()
{
InitializeComponent();
}
}
Я могу получить доступ к свойствам моего ViewModel, просто выполнив следующие действия:
var shellVM_Instance = containerProvider.Resolve<ShellViewModel>();
shellVM_Instance.IsBusy = false;
Код скомпилируется, но не запустится.Когда я запускаю код, он говорит мне, что ShellViewModel из вышеупомянутого var shellVM_Instance ссылается на нулевой объект типа ShellViewModel.Это заставляет меня думать, что я неправильно зарегистрировал ViewModel в IContainerRegistry.
Может ли кто-нибудь предложить какую-либо помощь?
Я хотел бы избежать использования класса Bootstrapper и воспользоваться преимуществами того, что Prism7.1 должен предложить ( Примечания к выпуску Брайана )
Я ценю любые советы здесь и ваше терпение, пока я пытаюсь сосредоточиться на Призмы и ее истинном потенциале.
РЕДАКТИРОВАТЬ:
Я вижу, что IContainerRegistry имеет метод RegisterInstance ..
void RegisterInstance(Type type, object instance);
Я не могу на всю жизнь выяснить синтаксис.Мои попытки:
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
ShellViewModel shell_VM = new ShellViewModel();
containerRegistry.RegisterInstance<ShellViewModel, shell_VM>();
}
Спасибо!
-Крис