【问题标题】:Style Dataform label based on validation severity with Silverlight 4基于 Silverlight 4 的验证严重性的样式 Dataform 标签
【发布时间】:2011-01-28 04:14:54
【问题描述】:
我正在尝试扩展 Silverlight 验证以包括严重性。我采取的方法是在消息的开头添加一个特殊字符来指示它是错误还是警告,并将样式更改为红色或蓝色。通过指定自定义样式和使用值转换器,我已经成功地为 Validation Summery 控件、输入控件和 ValidationToolTips 实现了这一点。但我似乎无法让它与标签一起使用。
我的问题是我似乎无法绑定验证消息。我尝试了以下方法但没有成功:
或
有人可以提供一些帮助或建议一种替代方法吗?
非常感谢链接和/或示例代码。
【问题讨论】:
标签:
validation
silverlight-4.0
silverlight-toolkit
【解决方案1】:
我通过抛出不同类型的异常(用于警告的 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();
}
}