0

我已经开始使用 Prism 进行第一次试用,这就是我所做的:

@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 是一个拥有 UserControl 的 ClassProject 并且有一个菜单。我想用 menueitem 的命令在 CenterRegion 中注入一个视图,但我真的不知道怎么做。我是否还必须将 Topbar 声明为模块?

谢谢

4

1 回答 1

2

这是一个简单的方法:

@模块:

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;
    }
于 2013-03-19T14:34:18.370 回答