在wpf表单中加载设计器时出错

在wpf表单中加载设计器时出错,wpf,xaml,designer,Wpf,Xaml,Designer,我的应用程序运行良好,在wpf表单中加载设计器时,我突然发现了错误 对象引用未设置为对象的实例。 好像它在一个循环中。按下回车按钮一段时间后。我得到这个错误 Microsoft Visual Studio XAML UI设计器已停止工作。 在这之后,我得到了这个 System.Runtime.Remoting.RemotingException [9980]设计器进程意外终止 方括号中的数字每次都在变化 我正在使用VisualStudio2012。我还没有运行应用程序,我只是从代码隐藏切换到设计

我的应用程序运行良好,在wpf表单中加载设计器时,我突然发现了错误

对象引用未设置为对象的实例。

好像它在一个循环中。按下回车按钮一段时间后。我得到这个错误

Microsoft Visual Studio XAML UI设计器已停止工作。

在这之后,我得到了这个

System.Runtime.Remoting.RemotingException [9980]设计器进程意外终止

方括号中的数字每次都在变化

我正在使用VisualStudio2012。我还没有运行应用程序,我只是从代码隐藏切换到设计器模式。如果我编译并运行应用程序,它运行得很好。 请帮忙

编辑:

下面是单个图像中的三个错误。(我不能发布多个链接)


代码隐藏或
DataContext
中存在错误(如果使用的是ViewModel)。修复该错误后,单击
单击此处以重新加载设计器。所发生的事情是,设计师试图在设计期间加载所有内容,但由于出现错误,因此无法加载,就好像程序实际上正在运行一样。在试图找出原因时,空引用异常可能有点误导,因为如果代码隐藏或ViewModel中有错误,就会抛出该异常

检查事项:

  • 视图是否引用了正确的ViewModel
  • 视图的代码隐藏部分是否与视图名称匹配?有些人复制他们的视图,但忘记更改代码中的类名
  • 您的ViewModel中有任何错误吗
  • 模型呢?如果它们在设计时加载并包含错误,则可能导致上述异常

  • 我注意到这些错误几乎每次都是由

    • 视图的无参数构造函数中出现错误
    • 附加到视图的视图模型的构造函数中出现错误
    请记住,当设计器加载时,它会调用视图的无参数构造函数(设计器必须有一个构造函数!)。如果有一些“复杂的事情”只能在运行时正确执行,那么在设计时可能会出现错误

    对于从视图调用的视图模型的构造函数也是如此


    检查设计模式是否处于活动状态

    例如,您不应该从构造函数中的存储库加载数据。 如果在构造函数中执行此操作,请至少检查设计模式是否处于活动状态,如本节中关于
    GetIsInDesignMode
    附加属性所述,并且仅在设计模式未处于活动状态时在构造函数中执行复杂逻辑


    调试问题

    您还可以调试该问题。为此,您必须打开VisualStudio的第二个实例,并从中调试原始VisualStudio实例的设计器进程


    这里详细描述了该过程:

    当它给出第一个错误时,它应该包括一个显示stacktrace的链接。这应该指向尚未创建的对象。@mcalex,我还没有运行应用程序,我只是打开了设计器,它向我抛出了一个带有该消息的普通消息框,我可以向你显示屏幕截图,但我没有足够的信誉点。嗯,好的。我遇到的Xaml设计器错误通常在设计时显示stacktrace链接(有时,甚至在一切正常的情况下)。也许你可以在附近的某个图像站点上发布一张图像(例如,snag.gy)?相关帖子:我正在使用viewmodel,应用程序中的任何地方都没有错误。我以前在另一页上遇到过同样的错误,但它自己解决了。现在这一页不是。感谢您的回复和建议。@Revanth发布您的
    XAML
    ViewModel
    ;否则,这只是猜测。我基本上是根据我在使用WPF时遇到的经验来描述它可能是什么。谢谢你,BK,根据你的建议,我创建了一个新表单,并一行一行地复制。问题在于一个静态实例绑定。但它从一开始就没有抛出任何错误。现在,我将探究原因。再次感谢你的想法。@没问题。调试设计时和绑定相关的异常有时会让人头疼。是的。根据您的建议,刚才添加了一个无参数构造函数。添加它清除了错误列表中关于xaml中静态实例绑定的所有消息。其他绑定也将遵循同样的方法。谢谢。很高兴我能帮上忙:-)如果它对你有用,请投票支持我的答案。