【问题标题】:Error while loading designer in wpf form以 wpf 形式加载设计器时出错
【发布时间】:2014-11-13 06:49:26
【问题描述】:

我的应用程序运行良好,突然在以 wpf 形式加载设计器时,我得到了错误。

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

好像它在一个循环中。按下回车键一段时间后。我收到此错误。

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

在这之后,我得到了这个。

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

方括号中的数字每时每刻都在变化。

我正在使用 Visual Studio 2012。我还没有运行应用程序,我只是从后面的代码切换到设计器模式。如果我编译并运行应用程序,它运行良好。 请帮忙。

编辑:

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

xamlerrors

【问题讨论】:

  • 当它给出第一个错误时,它应该包含一个显示堆栈跟踪的链接。这应该指向尚未创建的对象。
  • @mcalex,我还没有运行应用程序,我只是打开了设计器,它向我抛出了带有该消息的普通消息框,我可以给你看屏幕截图,但我没有足够的声望点.
  • 嗯,好的。我得到的 Xaml 设计器错误通常会在设计时显示堆栈跟踪链接(有时,即使一切编译正常)。也许您可以在附近的某个图片网站(例如 snag.gy)上发布一张图片?

标签: wpf xaml designer


【解决方案1】:

代码隐藏或DataContext 中存在错误(如果您使用的是 ViewModel)。修复该错误后,单击Click here to reload the designer。正在发生的事情是设计者试图在设计期间加载所有内容,并且由于出现错误,它无法加载,就好像程序实际上正在运行一样。就试图找出原因而言,该空引用异常可能有点误导,因为如果您的代码隐藏或 ViewModel 中有错误,它将被抛出。

检查事项:

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

【讨论】:

  • 我正在使用 viewmodel 并且应用程序中的任何地方都没有错误。我之前在另一个页面上遇到过同样的错误,但它自己解决了。现在这个页面没有了。谢谢回复,请多指教。
  • @Revanth 发布您的XAML 和您的ViewModel;否则,它只是猜测。我基本上是根据我在使用 WPF 的经验中遇到的情况来描述它可能是什么。
  • 谢谢BK,根据您的建议,我创建了一个新表格并逐行复制。问题在于其中一个静态实例绑定。但它从一开始就没有抛出任何错误。现在我将挖掘原因是什么。再次感谢您的想法。
  • @Revanth 没问题。调试设计时和绑定相关的异常有时会很痛苦。
【解决方案2】:

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

  • 视图的无参数构造函数出错
  • 附加到视图的视图模型的构造函数出错

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

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


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

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


调试问题

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

这里详细描述流程:Debugging an Exception (only) occurring in design view

【讨论】:

  • 是的。根据您的建议,刚刚添加了一个无参数构造函数。添加它会清除错误列表中有关 xaml 中静态实例绑定的所有消息。其余的绑定也将遵循同样的方法。谢谢。
  • 很高兴我能帮上忙 :-) 如果它对你有用,请投票给我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多