【发布时间】:2017-05-24 18:03:51
【问题描述】:
我有一个 WPF 项目,它使用大量连接到本地数据库的资源字典和实体框架。当我在单独的解决方案中测试项目时,一切正常。
现在,我正在尝试将此 WPF 项目连接到现有的 Excel VSTO 项目,并通过单击 Excel 功能区上的按钮来运行 WPF 应用程序窗口。 我已将 App.xaml.cs 修改如下:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow view = new MainWindow();
view.Show();
}
}
另外,我已经从 App.xaml 中删除了 StartupUri="MainWindow.xaml"。在 Excel 功能区上,我有一个应该运行应用程序的按钮:
private void button1_Click(object sender, RibbonControlEventArgs e)
{
App application = new App();
application.Run();
}
现在我有两个不同的问题:
首先,当我单击按钮时,MainWindow.xaml 的不同部分出现异常,如下所示:“Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' throw an exception”。很可能缺少与资源的连接。
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionaries\DataGridDictionary.xaml" />
<ResourceDictionary Source="Dictionaries\DarkTheme.xaml" />
<ResourceDictionary Source="Dictionaries\WindowStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我试图用一个空的 WPF 窗口重复相同的过程,它可以工作,但现在我遇到了第二个问题。当我再次单击按钮时,我得到了异常; “不能在同一个 AppDomain 中创建多个 System.Windows.Application 实例。”
我认为在一个大型项目中,有几个模块是正常的,每个模块都是一个 WPF 窗口,这些 WPF 窗口可以从主应用程序(Windows 窗体或 Office 功能区)调用。
您能否建议如何解决上述两个问题? 谢谢!
编辑:我不想使用任务窗格和托管 WPF 控件。我更喜欢将 WPF 应用程序作为独立于 Excel 的单独窗口运行。
【问题讨论】:
-
你见过this吗?
-
感谢您的评论。它部分有效,但不能解决这两个问题。