Comment implémenter des validations au moment de la conception pour XAML, qui entraînent des erreurs de compilation?

StackOverflow https://stackoverflow.com/questions/335645

Question

Comment faire en sorte que les développeurs qui écrivent XAML dans Visual Studio doivent respecter certaines normes et les validations doivent être exécutées et si des erreurs de compilation non valides sont générées.

Par exemple, assurez-vous que toutes les expressions de liaison de données (dont certaines sont très longues) sont écrites correctement conformément à la "validation personnalisée" que j'aimerais implémenter, au moment de la conception. Comme,

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

Dans l'exemple ci-dessus, si l'expression de liaison dans la propriété Text n'est pas dans ce format , une erreur de compilation devrait se produire.

Y a-t-il un moyen de faire cela?

Était-ce utile?

La solution

Désolé, le service linguistique XAML ne peut pas être étendu de cette façon non plus. Le meilleur moyen de le faire aujourd'hui est de créer une tâche de construction. Je pense que vous pouvez l'attacher à la cible MarkupCompilePass1DependsOn et il sera automatiquement appelé lorsque l'utilisateur enregistrera ou modifiera un fichier XAML. Vous devez toujours analyser le fichier de manière redondante auprès de nous, mais vous n’avez pas besoin d’attendre une compilation réelle pour que cela fonctionne. Ceci est une citation directe de l’un des architectes Microsoft qui travaille actuellement sur les concepteurs WPF.

Autres conseils

Il n’existe pas de méthode intégrée pour ce faire. Le meilleur moyen d’obtenir ce résultat est d’exécuter un outil personnalisé sur l’entrée. Cela nécessitera beaucoup de travail de la part de votre part, car vous devrez analyser le fichier vous-même, mais vous devriez pouvoir faire fonctionner ce scénario.

Exemple de site pour la création d'un générateur personnalisé

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top