样式数据表标签基于Silverlight 4的验证严重性

时间:2011-01-28 04:14:55

标签: validation silverlight-4.0 silverlight-toolkit

我正在尝试扩展Silverlight验证以包含严重性。我正在采取在消息开头添加特殊字符的方法,以指示它是错误还是警告,并将样式更改为红色或蓝色。通过指定自定义样式和使用值转换器,我已成功为Validation Summery控件,输入控件和ValidationToolTips实现了此功能。但我似乎无法使用标签。

我的问题是我似乎无法绑定验证消息。我试过以下但没有成功:

OR

有人可以提供一些帮助或建议替代方法。 非常感谢链接和/或示例代码。

1 个答案:

答案 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();
        }
    }