0

当visual studio中的编辑器(xaml / design)抛出argumentnullexception,“value cannot be null”时,您如何处理?

我正在使用实体框架从数据库中读取一些值并将它们存储在一个可观察的集合中,以便我可以从 xaml 绑定到它们。假设集合中可能没有任何值是合乎逻辑的,所以异常是正确的,对吧?即使我在数据库中有值,仍然会抛出异常,因为编辑器(在设计模式下查看时)没有运行应用程序来获取值,这仍然是正常的。

当我运行应用程序时,一切正常,但异常非常烦人。

我也收到一个错误,在从数据库读取时使用 try catch,但仅在编辑器(xaml)中而不是在运行应用程序时,显示“在配置中找不到指定的命名连接,不打算与EntityClient 提供程序,或无效。堆栈跟踪让我进入实体数据模型本身。我使用 mysql 作为后端。每次我在 xaml 中键入某些内容(一个字符)时,都会抛出这个带有错误的消息框!

我的单元和集成测试一切正常。

顺便说一句,这正常吗?

编辑:如果我在应用程序资源中添加视图模型的初始化(在 app.xaml.cs 但不在 app.xaml 中),它似乎可以工作。当我在 xaml 中编写代码或切换到设计以查看其外观时,我没有看到错误。

4

2 回答 2

1

您可以为设计模式设计一些示例数据,以便您可以看到设计器并在 xaml 中编写代码,而不会出现任何设计器异常。为此,您可能需要使用DesignerProperties类(例如DesignerProperties.GetIsInDesignMode(this)等)。我遇到过类似的 XAML 设计师迷恋并使用这种技术解决了问题。我建议阅读指南以获得进一步的帮助。

于 2011-07-06T08:08:15.977 回答
0

您可以调试设计器:-)

为此,在您的模型中设置断点(在开始时)

现在在“调试”下的项目选项中选择“从外部程序开始”并选择 devenv.exe

现在,当您运行项目时,将出现一个新的 Visual Studio 实例。当您在新的 Visual Studio 实例中打开窗口时,应该在 Visual Studio 的第一个实例中点击中断

于 2011-07-06T06:51:30.107 回答