Me gustaría mostrar advertencias y errores al validar un objeto comercial y que se muestren visualmente al usuario.Mostrar advertencias de forma similar a los errores en un control wpf
Por ejemplo, tengo una clase de objeto de negocio de la implementación de una interfaz de este modo:
interface IOrderItem : IDataErrorInfo
{
int ProductId { get; set; }
string ProductName { get; set; }
decimal Price { get; set; }
IDictionary<string, string> Warnings { get; }
}
Esto está ligado a la interfaz de usuario de la siguiente manera:
<TextBox Text="{Binding Price, ValidatesOnDataErrors=True}/>
un error sería:
- Precio < 0 => "El precio no puede ser menor que 0"
Esto funciona bien y dibuja un borde rojo alrededor del cuadro de texto cuando coloco el mensaje de error en el objeto comercial utilizando la interfaz IDataErrorInfo
.
Lo que me gustaría hacer es especificar también advertencias, por ejemplo:
- < Precio 15 || Precio> 30 => "Precio fuera de tolerancia"
Estas advertencias colocarán un borde naranja alrededor de un cuadro de texto e informarán al usuario que puede haber un problema pero no pueden detener el proceso.
Las advertencias se almacenan en un mapeo de diccionario de cadenas PropertyName => WarningMessage de forma similar a IDataErrorInfo
.
Pregunta: ¿Cuál es la mejor manera de hacerlo?
- Obviamente necesitaré un estilo que contenga un borde naranja para el cuadro de texto, pero ¿cómo lo desencadenaré?
- No quiero realmente un estilo separado para cada cuadro de texto, entonces, ¿cómo puede el estilo acceder al enlace subyacente para obtener el nombre de propiedad que debería buscar en el Diccionario?
Me encontré con un problema muy similar (http://stackoverflow.com/questions/3813365/mimicking-validation-behaviour-without-validation), así que estoy publicando una recompensa aquí. – GWLlosa