我是prism的新手,并试图弄清楚如何从主机应用程序将对象引用传递到WPF类库(Prism和MEF)。
谢谢!
在我的主机应用程序中,单击按钮会调用WPF类库:
public override void OnClick()
{
//need to pass some object reference into
TestButtonBootstrapper bootstrapper = new TestButtonBootstrapper();
bootstrapper.Run();
}
我的引导程序:
protected override void InitializeShell()
{
base.InitializeShell();
if (System.Windows.Application.Current == null)
{
new System.Windows.Application();
}
System.Windows.Application.Current.MainWindow = (Shell)this.Shell;
System.Windows.Application.Current.MainWindow.Show();
System.Windows.Application.Current.MainWindow.Height = 600;
System.Windows.Application.Current.MainWindow.Width = 250;
//Application.Current.MainWindow = (Shell)this.Shell;
//Application.Current.MainWindow.Show();
}
答案 0 :(得分:0)
在Prism中,Bootstrapper旨在启动主要可执行文件,并提供Host应用程序和组合模块之间的连线。
在App.xaml.cs中,更改启动代码,以便实例化并运行引导程序。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
new MyBootstrapper().Run();
}
}
请务必从App.xaml中删除StartupUri,以便在应用程序启动时不会出现两个主窗口。