Silverlight Stringformat:格式错误的字符串返回空字符串而不是异常

时间:2011-09-12 13:38:43

标签: silverlight silverlight-4.0

这是我的代码段:

<TextBox Text="{Binding Path=Amount, Mode=TwoWay, StringFormat=\{0:N\}}" />

如果用户输入字母或大数字等,则stringformat将静默死亡。我怎样才能提出异常?

由于

2 个答案:

答案 0 :(得分:3)

当文本输入无法转换为源对象上属性所需的数据类型时,绑定吞没异常。但是,您可以在绑定中指定ValidatesOnException。这将导致转换问题的标准红色边框报告。 BTW这与字符串格式属性无关,字符串格式属性仅与显示当前值有关,当用户输入数据时它不起作用。

    <TextBox Text="{Binding Path=Amount, Mode=TwoWay, StringFormat=\{0:N\}, ValidatesOnExceptions=True}" HorizontalAlignment="Left" Width="200"/>

注意我限制了宽度并向左对齐。默认验证弹出窗口的一个问题是它始终显示在右侧,当文本框右边框与silverlight控件右边缘的右边缘齐平时,这有点问题。

答案 1 :(得分:2)

您是否考虑过编写一个过滤器行为,以便您准确控制文本框中的内容?