Como implementar as validações de tempo de design para XAML, que resultam em erros de compilação?
-
22-07-2019 - |
Pergunta
Como aplicar que os desenvolvedores que escrevem XAML no Visual Studio devem seguir certos padrões e validações precisam ser executados e se os erros de tempo de compilação inválidos forem lançados.
Por exemplo, certifique -se de que todas as expressões de banco de dados (algumas são realmente longas) estejam escritas corretamente, de acordo com a 'Validação personalizada', gostaria de implementar, durante o tempo de design. Curti,
<TextBox Text="{Binding Source={StaticResource CALCULATED}, Converter={StaticResource XPathConverter}, ConverterParameter=@FIRSTNAME_STRING, XPath=@FIRSTNAME}"/>
Na amostra acima se o A expressão de ligação na propriedade de texto não está nesse formato, deve haver um Erro de compilação.
Existe uma maneira de fazer isso?
Solução
Desculpe, o serviço de idioma XAML também não pode ser estendido dessa maneira. A melhor maneira de fazer isso hoje é criar uma tarefa de construção. Eu acho que você pode conectá -lo ao alvo MarkupCompilePass1Dependson e ele será invocado automaticamente quando o usuário salva ou altera um arquivo XAML. Você ainda precisa digitalizar o arquivo de forma redundante, mas não precisa esperar uma compilação real para fazer isso funcionar. Esta é uma cotação direta de um dos arquitetos da Microsoft que atualmente está trabalhando nos designers do WPF.
Outras dicas
Não há uma maneira interna de fazer isso. A melhor maneira de obter esse resultado é executar uma ferramenta personalizada na entrada. Isso exigirá muito trabalho de perna de sua parte, pois envolverá a análise do arquivo, mas você poderá fazer esse cenário funcionar.
Site de exemplo para criar um gerador personalizado
http://www.drewnoakes.com/snippets/writingacustomcodegeneratortoolforvisualstudio/