IDataErrorInfo en winforms
-
05-07-2019 - |
Pregunta
¿Se puede usar la información de IDataError correctamente en una aplicación de winforms? En el pasado, estaba haciendo mi enlace de la manera habitual (1) e hice la validación en el evento OnValidating del control particular. Me gustaría mover la validación de datos al modelo de dominio para poder intercambiar fácilmente las interfaces de usuario y para que toda la lógica esté en un solo lugar.
Estaba buscando en IDataErrorInfo pero todo lo que encuentro trata con WPF y la aplicación en desarrollo es estrictamente una aplicación winforms.
También noté que el enlace que se usa en WPF está en System.Windows.Data y el enlace que siempre he estado usando en System.Windows.Forms (que parece que no tengo cuando intento para agregarlo como un recurso, estoy usando 3.5). Junto a la propiedad " ValidatesOnDataErrors " ¿Hay alguna diferencia entre los dos?
(1) la forma habitual es:
myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
Solución
Esto funciona con el ErrorProvider componente en formularios Windows Forms.
Para ver un tutorial completo, pero muy simple y corto, consulte esta publicación de blog .
Otros consejos
Sí, IDataErrorInfo
funciona en winforms. Por ejemplo, DataGridView
usará esto automáticamente por fila y por celda. Pero es específico de la implementación y no se aplica automáticamente a otros enlaces. Una vez escribí un código para asociarlo a un proveedor de errores y hacer el trabajo a través de eventos de cambio, pero desafortunadamente no lo tengo a mano. Pero creo recordar que no fue enorme.