代码之家  ›  专栏  ›  技术社区  ›  Vin

如何为XAML实现设计时验证,这会导致编译错误?

  •  0
  • Vin  · 技术社区  · 17 年前

    如何强制在Visual Studio中编写XAML的开发人员遵循某些标准,需要运行验证,以及是否抛出无效的编译时错误。

    例如,在设计时,确保所有数据绑定表达式(有些是非常长的)都按照我想要实现的“自定义验证”正确编写。 例如,

    <TextBox Text="{Binding Source={StaticResource CALCULATED}, Converter={StaticResource XPathConverter}, ConverterParameter=@FIRSTNAME_STRING, XPath=@FIRSTNAME}"/>
    

    在上述示例中,如果 Text属性中的绑定表达式不是该格式 ,应该有一个 编译错误 .

    有办法做到这一点吗?

    2 回复  |  直到 17 年前
        1
  •  2
  •   JaredPar    17 年前

    没有内置的方法可以做到这一点。获得此结果的最佳方法是在输入上运行自定义工具。这将需要你做大量的准备工作,因为这将涉及你自己解析文件,但你应该能够让这个场景发挥作用。

    创建自定义生成器的示例站点

    http://www.drewnoakes.com/snippets/WritingACustomCodeGeneratorToolForVisualStudio/

        2
  •  0
  •   Ken Ken    17 年前

    很抱歉,XAML语言服务也不能以这种方式扩展。今天最好的方法是编写一个构建任务。我认为你可以将它挂接到MarkupCompilePass1DependsOn目标中,当用户保存或更改XAML文件时,它将自动调用。你仍然需要从我们这里冗余地扫描文件,但你不必等待实际的构建才能使其工作。这是一位目前正在研究WPF设计器的微软架构师的直接引用。