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"));
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top