Soy moderadamente nuevo en MVVM y entiendo algunos de los beneficios de MVVM sobre el código simple detrás de xaml (por ejemplo, la capacidad de prueba de la máquina virtual). Estamos utilizando Caliburn Micro para realizar algunos de los enlaces, pero eso es irrelevante, podría estar usando un enlace específico {binding ...} y mi pregunta sería más o menos la misma.¿Comprueba el tiempo de comprobación de enlaces?
Entiendo la lógica de que la VM no debe saber nada de la V si todo se hace correctamente, pero parece que debido a que estamos utilizando un enlace de tiempo de ejecución dinámico entre la V y la VM que el compilador no puede verificar legalidad de cada expresión vinculante. Por ejemplo, si tengo un componente UI llamado UserName, entonces Caliburn intentará vincularlo a una propiedad de máquina virtual llamada UserName en tiempo de ejecución (similar a hacer algo como Value = "{binding UserName}"). Sin embargo, si cambio el nombre de mi propiedad de VM o deletreo incorrecto el nombre del componente de UI o la expresión de enlace, no recibimos ninguna indicación de problema hasta el tiempo de ejecución.
Me parece que sería muy bueno poder decirle a la xaml que un componente de UI o página va a estar vinculado a una interfaz específica para que el compilador pueda hacer parte del trabajo que de otro modo tendría para ser hecho (y vuelto a hacer) por el departamento de pruebas (y ese soy yo con bastante frecuencia).
¿Hay alguna manera de decirle a xaml que estamos vinculados a una interfaz o tipo de objeto? ¿Hay alguna herramienta que pueda conectarse a una aplicación xaml para validar enlaces?
-1: El OP pidió explícitamente una solución en tiempo de compilación. –
aha ... esta es una alternativa –
No lo es. El OP ya sabe sobre esto y no quiere usarlo. –