当visual studio中的编辑器(xaml / design)抛出一个argumentnullexception时,你如何处理,“value不能为null”?
我正在使用实体框架从数据库中读取一些值并将它们存储在一个可观察的集合中,以便我可以从xaml绑定它们。假设集合中可能没有任何值,因此异常是正确的,这是合乎逻辑的,对吧? 即使我在数据库中有值,仍会抛出异常,因为编辑器(在设计模式下查看时)没有运行应用程序来获取值,这仍然是正常的。
当我运行应用程序时,所有都可以正常运行,但异常非常烦人。
我也遇到错误,在从数据库读取时使用try catch,但仅在编辑器(xaml)中,而不是在运行应用程序时,说“在配置中找不到指定的命名连接,不打算与EntityClient提供程序一起使用,或者无效.tracktrace将我带入实体数据模型本身。我使用mysql作为后端。 每次我在xaml中输入一些东西(一个字符)时,都会抛出带有错误的消息框!
我的单元和集成测试都运行良好。
顺便说一下这是正常的吗?
编辑: 如果我在应用程序资源中添加viewmodel的初始化(在app.xaml.cs中但在app.xaml中没有),它似乎可以工作。当我在xaml中编写代码或者切换到设计以查看它的外观时,我没有看到错误。
答案 0 :(得分:1)
您可以为设计模式设计一些示例数据,以便您可以在xaml中查看设计器和编写代码,而不会出现任何设计器异常。为此,您可能需要使用DesignerProperties类(例如DesignerProperties.GetIsInDesignMode(this)
等)。我遇到了类似的XAML设计师粉碎并使用这种技术解决了。我建议您阅读this指南以获得进一步的帮助。
答案 1 :(得分:0)
您可以调试设计器: - )
为此,在模型中(在开头)创建一个断点
现在在“Debug”下的项目选项中选择“以外部程序启动”并选择devenv.exe
现在,当您运行项目时,将出现一个新的visual studio实例。当您在新的visual studio实例中打开窗口时,应该在visual studio的第一个实例中点击中断