【问题标题】:How to put decimal value in textbox field? [duplicate]如何在文本框字段中输入十进制值? [复制]
【发布时间】:2016-01-26 20:05:53
【问题描述】:

如何在文本框中输入十进制值?例如,我想输入值 0.20 或 20 但被读取为 20%?

【问题讨论】:

  • 所以您想将您的值格式化为百分比掩码?
  • 您可以在绑定中指定StringFormat,如链接问题所示。如果您需要更高级的东西,例如将“0.2”或“20”转换为百分比,您可以使用Converter。对于仅转换“20”的转换器示例,请查看here - 您应该能够轻松修改它以检查类似“.20”的内容。

标签: c# wpf


【解决方案1】:

因为您应该将此类代码排除在业务逻辑之外,您可能希望将StringFormat 与自定义值转换器结合使用。 Please refer to this article.

在您的情况下,TextBox 可能 - 在不知道您的代码的情况下 - 看起来像这样:

<TextBox Text="{Binding PercentValue, StringFormat=P, Converter={StaticResource PercentageConverter}}" />

这里的“P”将0.25 视为 25%。

【讨论】:

  • 转换器必须作为资源导入 XAML。您的答案是不完整的,并且在不了解它的工作原理的情况下被复制。
【解决方案2】:

这应该可以工作

        decimal val = 0M;
        decimal.TryParse(YourTextBox.Text, out val);
        decimal valAsPercent = val * 100;
        // Then when you want to stuff the new value back into your textbox
        YourTextBox.Text = valAsPercent.ToString() + "%";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2022-01-24
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多