我正在尝试扩展Silverlight验证以包含严重性。我正在采取在消息开头添加特殊字符的方法,以指示它是错误还是警告,并将样式更改为红色或蓝色。通过指定自定义样式和使用值转换器,我已成功为Validation Summery控件,输入控件和ValidationToolTips实现了此功能。但我似乎无法使用标签。
我的问题是我似乎无法绑定验证消息。我试过以下但没有成功:
OR
有人可以提供一些帮助或建议替代方法。 非常感谢链接和/或示例代码。
答案 0 :(得分:0)
我通过抛出不同类型的异常(警告的ValidationWarning异常)解决了这个问题。每次抛出验证异常时,都会触发BindingValidationError事件。在事件处理程序中,我检查异常类型并根据异常更改样式:
private void OnBindingValidationError(object sender, ValidationErrorEventArgs e)
{
var textBox = sender as TextBox;
if (textBox != null)
{
if (e.Error.Exception is ValidationWarning)
{
UpdateStyle(textBox, "TextBoxWithWarning");
}
else
{
UpdateStyle(textBox, "TextBoxWithError");
}
}
}
private static void UpdateStyle(TextBox textBox, string styleName)
{
var newStyle = (Style)Application.Current.Resources[styleName];
if (textBox.Style != newStyle)
{
textBox.Style = newStyle;
textBox.Focus();
}
}