Я новичок в Prism и следую учебному пособию Брайана Лагунаса «Введение в призму». Я создаю собственный регион-адаптер, как показано ниже.
public class StackPanelRegionAdapter : RegionAdapterBase<StackPanel>
{
public StackPanelRegionAdapter(IRegionBehaviorFactory regionBehavior )
:base(regionBehavior)
{
}
protected override void Adapt(IRegion region, StackPanel regionTarget)
{
region.Views.CollectionChanged += (s, e) =>
{
if(e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
{
foreach(FrameworkElement frameworkElement in e.NewItems)
{
regionTarget.Children.Add(frameworkElement);
}
}
};
}
protected override IRegion CreateRegion()
{
return new AllActiveRegion();
}
}
В Bootstrapper
protected override void ConfigureContainer()
{
RegionAdapterMappings regionAdapterMappings = base.ConfigureRegionAdapterMappings();
regionAdapterMappings.RegisterMapping(typeof(StackPanel),
Container.Resolve<StackPanelRegionAdapter>());
}
Я получаю исключение
System.InvalidOperationException: ServiceLocationProvider должен быть установлен
здесь
RegionAdapterMappings regionAdapterMappings = base.ConfigureRegionAdapterMappings();
Что я делаю неправильно