这里是我的代码片段:Silverlight中的StringFormat:畸形字符串返回空字符串,而不是例外
<TextBox Text="{Binding Path=Amount, Mode=TwoWay, StringFormat=\{0:N\}}" />
如果用户输入字母或大量等等,在悄无声息的StringFormat死亡。我怎样才能提出异常呢?
感谢
这里是我的代码片段:Silverlight中的StringFormat:畸形字符串返回空字符串,而不是例外
<TextBox Text="{Binding Path=Amount, Mode=TwoWay, StringFormat=\{0:N\}}" />
如果用户输入字母或大量等等,在悄无声息的StringFormat死亡。我怎样才能提出异常呢?
感谢
绑定swallow当文本输入无法转换为源对象上的属性所需的数据类型时抛出异常。但是,您可以在绑定中指定ValidatesOnException
。这将导致标准的红色边框报告转换问题。顺便说一句,这与字符串格式属性无关,只与显示当前值有关,当用户输入数据时不会播放。
<TextBox Text="{Binding Path=Amount, Mode=TwoWay, StringFormat=\{0:N\}, ValidatesOnExceptions=True}" HorizontalAlignment="Left" Width="200"/>
注意:我已经限制了宽度并对齐到左侧。默认验证弹出窗口的一个问题是,它始终显示在右侧,当文本框右边框与Silverlight控件的右边缘的右边缘齐平时,这是有点问题。
你有没有想过写一个过滤器的行为,使您可以精确控制进入文本框的?
你是什么意思? –
在WPF/Silverlight中,您可以为控件类型编写可重用的行为。对于您的场景,您可以编写一个限制输入的文本类型的文本框行为,例如数字只。有一些阅读这些想法:http://www.dataartist.net/blog/post/Silverlight-Behavior-Modifications-13-NumericOnlyBehavior.aspx http://csharperimage.jeremylikness.com/2009/10/silverlight- behaviour-and-triggers_07.html –
我希望避免给我的gazillion领域添加属性:/但是,谢谢,如果没有别的东西,它会工作。 –
我仍然要编辑我的gazillion字段,但它比我想要的要好,所以谢谢:) –
validatesOnException非常好,但我有一个本地化问题:http://stackoverflow.com/q/7399822/204682 –