棱镜导航
问题描述:
我开始了我的第一次尝试用棱镜,这就是我没有完成:棱镜导航
@ Bootstrapper.cs
ModuleCatalog catalog = new ModuleCatalog();
catalog.AddModule(typeof(ExampleModule));
@ ExampleModule.cs
public void Initialize()
{
regionManager.RegisterViewWithRegion("TopBarRegion", typeof(StandardTopBar));
regionManager.RegisterViewWithRegion("CenterRegion", typeof(PersonStammdatenControl));
regionManager.RegisterViewWithRegion("BottomBarRegion", typeof(Bottombar));
}
StandardTopbar是一个拥有UserControland自己的ClassProject的菜单。我想用Menueitem的一个命令在CenterRegion中注入一个视图,但我真的不知道如何。我是否也必须将Topbar声明为模块?
感谢
答
这是一个简单的方法:
@Module:
protected override void RegierTypes()
{
base.Container.RegisterType<IMainPageViewModel, MainPageViewModel>();
var viewModel = container.Resolve<IMainPageViewModel>();
RegionManager.Regions[RegionNames.ContentRegion].Add(viewModel.View);
}
@ViewModel:
private readonly IEventAggregator eventAggregator;
private readonly IMainPage view;
public MainPageViewModel(IMainPage view,
IEventAggregator eventAggregator) : base(view)
{
this.view = view;
this.eventAggregator = eventAggregator;
}
public interface IMainPage : IView
{
}
public interface IView
{
IViewModel ViewModel { get; set; }
}
public interface IViewModel
{
IView View { get; set; }
}
@bootstrapper:
protected override IModuleCatalog CreateModuleCatalog()
{
ModuleCatalog catalog = new ModuleCatalog();
catalog.AddModule(typeof(MainModule));
return catalog;
}