這裏是我的代碼片段: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 –