Come implementare convalide in fase di progettazione per XAML, che si traducono in errori di compilazione?

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

Domanda

Come imporre che gli sviluppatori che scrivono XAML in Visual Studio debbano seguire determinati standard e devono essere eseguite convalide e se vengono generati errori di tempo di compilazione non validi.

Ad esempio, assicurandosi che tutte le espressioni di database (alcune siano molto lunghe) siano scritte correttamente secondo "una convalida personalizzata" che vorrei implementare, durante la fase di progettazione. Come,

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

Nell'esempio sopra riportato se l'espressione vincolante nella proprietà Text non è in quel formato , dovrebbe esserci un errore di compilazione .

C'è un modo per farlo?

È stato utile?

Soluzione

Siamo spiacenti, il servizio di lingua XAML non può essere esteso in questo modo. Il modo migliore per farlo oggi è creare un'attività di compilazione. Penso che puoi collegarlo al target MarkupCompilePass1DependsOn e verrà invocato automaticamente quando l'utente salva o modifica un file XAML. Devi ancora scansionare il file in modo ridondante da noi, ma non devi aspettare una vera build per farlo funzionare. Questa è una citazione diretta di uno degli architetti Microsoft che attualmente sta lavorando ai progettisti di WPF.

Altri suggerimenti

Non esiste un modo integrato per farlo. Il modo migliore per ottenere questo risultato è eseguire uno strumento personalizzato sull'input. Ciò richiederà molto lavoro da parte tua da parte tua perché comporterà l'analisi del file da solo, ma dovresti essere in grado di far funzionare questo scenario.

Sito di esempio per la creazione di un generatore personalizzato

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top