visual-studio-2010 - VS2010 自定义标记扩展

标签 visual-studio-2010 xaml markup-extensions

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

我们有一个自定义的 MarkupExtension,我们在 xaml 中使用它来获取某些资源。像这样的东西:
<Button Style="{l:GetResource Key=MyButtonStyle}" />
我知道我们可以使用 StaticResource 或 DynamicResource。但是,我们有理由使用自定义标记扩展。

设计师的错误信息是:

'GetResourceExtension' is not valid for Setter.Value. The only supported MarkupExtension types are DynamicResourceExtension and BindingBase or derived types.



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

最佳答案

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

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

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

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

关于visual-studio-2010 - VS2010 自定义标记扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2733257/

相关文章:

visual-studio-2010 - 如何在 Visual Studio 2010 中启动调试 session 时防止 Cassini 自动启动

c# - Windows phone 7 绑定(bind)颜色到文本框

c# - 在 C# 中将 Grid 的 IsMouseOver 设置为 True

c# - BindingExpressionBase 在自定义 MarkupExtension 中为 null

jQuery:用于创建文本气球的小部件或插件

c# - 在 C# 项目中查找所有嵌套类的巧妙方法是什么?

c++ - 将二维数组转换为一维数组以绘制线条

c++ - 如何在 C++ 程序中使用 C 头文件?

c# - Windows Store App 将 sqlite 查询写入 ListView 的文本 block

c# - 带有标记扩展名的字符串格式