我正在尝试在WPF Composite应用程序中将Shell作为UserControl。我开始修改Quickstart应用程序:“Quickstarts \ UI Composition \ ViewDiscovery”。我使用Shell.xaml作为UserControl创建了一个UserControl类库“UIComposition.Desktop.csproj”。创建了另一个WPFApplication来托管Shell。在App.xaml.cs中添加了以下代码:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bootStrapper = new Bootstrapper();
bootStrapper.Run();
// Get ShellContainer from IOC
IUnityContainer container = bootStrapper.Container;
var shellElement = container.Resolve<Shell>();
ShellContainer win = new ShellContainer();
// Add the ShellContainer UserControl to the main window
win.mygrid.Children.Add(shellElement);
win.Show();
}
表单显示shell,但是当我点击员工时,它不会显示详细信息视图。请帮忙!!!如果有人试过这个。
谢谢&amp;问候, 维沙尔。
答案 0 :(得分:0)
您可以尝试重写UnityBootstrapper的CreateShell方法,而不是使用此OnStartup方法。我不是100%这是你的问题,但这是值得尝试的。
您的OnStartup方法将是:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bootStrapper = new Bootstrapper();
bootStrapper.Run();
}
这是CreateContainer方法:
protected override DependencyObject CreateShell()
{
var shellElement = Container.Resolve<Shell>();
var shellContainer = new ShellContainer();
shellContainer.mygrid.Children.Add(shellElement);
shellContainer.Show();
return shellContainer;
}
这只是在黑暗中拍摄的。我真的不知道问题是什么,但100%启动方法解决方案对我来说似乎不对。