Validation 使用Silverlight 4根据验证严重性设置数据表单标签样式
我正在尝试扩展Silverlight验证以包括严重性。我采取的方法是在消息的开头添加一个特殊字符,以指示它是错误还是警告,并将样式更改为红色或蓝色。通过指定自定义样式并使用值转换器,我已经成功地为Validation Summery控件、输入控件和ValidationToolTips实现了这一点。但我似乎无法让它与标签一起工作 我的问题是,我似乎无法绑定验证消息。我尝试了以下方法,但没有成功: 或 有人能提供一些帮助或建议一种替代方法吗。Validation 使用Silverlight 4根据验证严重性设置数据表单标签样式,validation,silverlight-4.0,silverlight-toolkit,Validation,Silverlight 4.0,Silverlight Toolkit,我正在尝试扩展Silverlight验证以包括严重性。我采取的方法是在消息的开头添加一个特殊字符,以指示它是错误还是警告,并将样式更改为红色或蓝色。通过指定自定义样式并使用值转换器,我已经成功地为Validation Summery控件、输入控件和ValidationToolTips实现了这一点。但我似乎无法让它与标签一起工作 我的问题是,我似乎无法绑定验证消息。我尝试了以下方法,但没有成功: 或 有人能提供一些帮助或建议一种替代方法吗。 非常感谢链接和/或示例代码。我通过抛出不同类型的异常
非常感谢链接和/或示例代码。我通过抛出不同类型的异常(针对警告的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();
}
}