UserControl包含我的自定义控件时的ExpressionBlend异常

时间:2011-11-16 21:40:15

标签: silverlight xaml expression-blend

我可以在visual studio中编辑这个UserControl,但我在表达式混合中得到了这个奇怪的异常。有谁知道我应该找什么?

enter image description here

更新

我无法确定如何调试/附加。我按照迈克的指示做了一切,但没有出现任何断点。我做了更多的调查,发现我的问题很可能与themes / generic.xaml

有关

我的visual studio解决方案有一个名为Infrastructure.dll的项目。在该项目中,我有文件夹themes,里面有文件generic.xamlGeneric.xaml设置为编译为资源。我的控制班住在同一个项目中。

我有另一个名为'Module.dll'的项目,该项目引用了Infrastructure.dll

  1. 当我用我的控件打开视图(视图来自Infrastructure.dll)时,它在Visual Studio中工作,但在Blend中出现此错误。
  2. 我可以在Blend中拖放控件,它会产生同样的错误。我试图删除我应用模板控制的行(generic.xaml中的模板),它的工作原理。
  3. 模板很好,我使用Blend创建它并自己复制到generic.xaml。
  4. 当我创建视图INSIDE Infrastructure.dll并放弃对该视图的控制时 - 它可以正常工作。
  5. 所以,我的结论是Blend没有在generic.xaml内看到生活在引用项目中的模板。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

在Blend中打开您的项目(但尚未打开问题文件)。也可以在Visual Studio中打开您的解决方案(打开顺序并不重要)。从Visual Studio中,选择Debug - >附加到进程...并选择Blend.exe。确保您在所有例外情况下都打破了。调试器完成附加并加载所有内容后,在Blend中打开问题文件。调试器应该(希望很难从异常细节中分辨出来)停在代码中的问题区域。

答案 1 :(得分:0)

问题肯定与Blend无法阅读/定位generic.xaml有关 Visual Studio没有这个问题顺便说一句。我现在找到了解决方法 - 如果我可以避免这样做,我会很乐意接受另一个答案。

在我向视图添加资源引用之后 - 一切都在Blend中工作。这意味着我必须将此XAML添加到我的所有视图中。

<UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Infrastructure.SL;component/Themes/generic.xaml"/>
            </ResourceDictionary.MergedDictionaries>