26

我们刚刚从vs2008切换到vs2010,我们的项目编译运行良好,没有任何问题。但是,xaml 设计器有一些错误。这是错误之一,希望有人可以提供解决方案。

我们有一个自定义的 MarkupExtension,我们在 xaml 中使用它来获取某些资源。像这样的东西:

<Button Style="{l:GetResource Key=MyButtonStyle}" />

我知道我们可以使用 StaticResource 或 DynamicResource。但是,我们有理由使用自定义标记扩展。

设计师的错误信息是:

“GetResourceExtension”对 Setter.Value 无效。唯一受支持的 MarkupExtension 类型是DynamicResourceExtensionBindingBase或派生类型。

我的问题是代码在vs2008中运行良好,在2010中也运行良好,如何让2010设计器工作?

4

1 回答 1

1

我编写了一些标记扩展,尽管代码运行我得到 Xaml 错误,就像你一直得到的那样。假设您有有效的代码,我发现摆脱错误的唯一方法是通过重建选项,然后运行应用程序。

当然,问题是如果您再次更改或移动它,错误似乎又回来了。我的假设是静态编译无法完全解决您的标记正在做什么,并且基于此引发错误。

在我的情况下,我正在编写一个方法绑定器,并且由于该对象在运行时之前为空,我最终不得不使用 new Object(); 并在运行时将其换出。这很 hacky,但编译错误让我发疯了。

xaml 解析器在 2012 年似乎更好,但即便如此,仍然存在奇怪的错误。

于 2013-02-18T21:39:04.720 回答