1

在处理编译和运行良好且没有任何编译器或运行时错误的项目时,我在设计视图中不断收到 XAML 错误和“无效标记”。

具体来说,我要打开的项目位于此处:

http://www.codeproject.com/Articles/474212/Zombie-Explorer-AN-Tier-application-from-top-to-b

问题似乎在于在 XAML 中使用任何不属于我的源代码的外部库中的类,例如 Cinch 和 MahApps 包。我发现在某些情况下我可以通过 NuGet 包管理器添加包,它会替换引用,有时它会修复错误。

老实说,我不确定是否有一个 XAML 文件可以打开而不会出现错误,甚至是关于同一解决方案中未解决的资源引用的一些错误。

我已经读过将“最大并行项目构建”更改为 1 可以解决这些类型的问题,但我已经尝试过并得到相同的结果。

有什么方法可以修复这些错误,以便我可以使用 XAML 设计器?

4

2 回答 2

0

我下载了您的代码并正在查看它——您是否有某个特定的 .xaml 文件有疑问?

一般来说,是的 - 让设计器(无论是 VS 还是 Blend)在编译和运行良好时无错误地呈现 XAML 组合可能需要一点尝试。要解决此问题,您可以使用 Visual Studio 的另一个实例调试 Visual Studio 本身呈现它的过程。或者,更费力的路线,通过剥离它直到没有错误显示,然后重新输入它直到你看到错误再次出现。我自己创建了一个记录器来记录渲染期间的错误(在 VS 设计器中),以帮助我发现它的不同之处。

请务必记住,Designer 在解析和呈现您的 xaml 对象时在重新创建您的代码时具有非常特殊的行为。它在 xaml 本身中执行代码。如果您的 xaml 具有导致此问题的 xaml 中表达的绑定,它将创建视图模型对象。但是,令人惊讶的是,它不会执行您的主要 xaml 对象(例如 Window 或 UserControl)的构造函数。因此,如果您依赖于存在一个对象以便可以呈现它,请在设计时执行的代码中进行创建或初始化,例如属性获取器或绑定属性。

于 2013-09-12T04:52:33.407 回答
0

我遇到了类似的问题,尽管“缺失”的课程在我自己的项目中。我将我的项目从(镜像)网络驱动器移动到本地驱动器并解决了它 - 表明问题是 VS 文件管理不善。

于 2013-09-23T17:56:27.523 回答