2

我有一个文本框,它在我输入数字时自动格式化自己的方式让我发疯。

例如,我想输入 -0.00004,但是当我输入时,TextBox 会在我输入第一个 时立即删除负号0

然后我尝试了 -.00004,它不会在我输入 时删除负号.,但是一旦我按下0它就会删除-and .

我能够让 TextBox 正常运行的唯一方法是先输入,然后将0.00004其自动格式化为4E-05,然后在前面添加负号。或者我可以输入-4E-5,然后它会自动格式化为-4E-05,这很好,但如果我输入-4E-05E一按 就会被丢弃0

我希望的是一种使用某种内置属性禁用此行为的方法,但如果它不存在,那么编写一个IValueConverter可能是我唯一的选择。

4

1 回答 1

1

解决自动格式化的一种方法是使用IValueConverter绑定的双精度属性。您需要向Convert从双精度转换为字符串的ConvertBack方法以及从字符串转换为双精度的方法添加逻辑。这是带有示例的MSDN 文章。

<TextBox Text="{Binding Number, Converter={StaticResource NumToStrConverter}}"/>

另一种方法是将StringFormatBinding 设置为带有要显示的小数位数的数字。在这里查看其他格式。

<TextBox Text={Binding Number, StringFormat=N10}"/>
于 2012-09-18T17:51:28.247 回答