我在使用方法
时遇到了问题this.regionManager.RegisterViewWithRegion("TextRegion", typeof(TextView));
如果我在某些方法中在boot strapper中编写上面的代码。它不起作用,因为我无法从代码
获取regionmanager的对象IRegionManager manager = this.Container.Resolve<IRegionManager>();
上面的代码抛出异常“异常消息是:当前构建操作(构建密钥构建密钥[Microsoft.Practices.Composite.Regions.IRegionManager,null])失败:当前类型,Microsoft.Practices.Composite.Regions。 IRegionManager是一个接口,无法构造。你是否缺少类型映射?“
但是上面的代码工作我将它放入一些ViewModel并注入IRegionManager。
像
public HeaderControlViewModel(IEventAggregator aggregator, IRegionManager regionManager)
: base(aggregator)
{
this.regionManager = regionManager;
this.regionManager.RegisterViewWithRegion("TextRegion", typeof(TextView));
}
但我不想这样做。我希望只使用bootstrapper配置所有内容。
请告诉我为什么bootstrapper无法获取RegionManager对象?我该如何解决这个问题?
非常感谢...
答案 0 :(得分:-1)
// ... App.xaml.cs
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bs = new Bootstrapper();
bs.Run();
bs.ShowDefault();
}
}
// ... Bootstrapper.cs
public void ShowDefault()
{
RegionManager.GetRegionManager(Application.Current.MainWindow)
.RequestNavigate("MainRegion", "ViewA");
}
// ...