【问题标题】:Format bound double property in MudBlazor textfieldMudBlazor 文本字段中的格式绑定双重属性
【发布时间】:2021-03-02 20:11:39
【问题描述】:

我有一个双值模型,它以这种方式绑定到 MudTextfield:

<MudTextField @bind-Value="product.Price" Label="Price"/>

@code {
  Product product = new Product { Name="Test-Abo", Price=199.12345 }
}

MudTextfield 将双精度转换为字符串,并且在编辑字符串时将其转换回双精度,因此可以正常工作。但是我有两个问题:

  1. 在我的文化中,小数点写成逗号,因此文本字段显示一个逗号,但我希望像 C# 中那样使用小数点。
  2. 我希望文本字段将小数点截断为两位,即使模型中的值有更多

我该怎么做?

【问题讨论】:

    标签: format blazor textfield mudblazor


    【解决方案1】:

    MudTextField 上,有几个选项可以将T(在您的情况下为double)类型的值转换为string

    您可以使用:
    Culture ... 覆盖默认 UI 文化
    Format ... 覆盖 ToString() 格式
    这些实际上将配置默认转换器

    或者:
    Converter ... 使用自定义转换器覆盖默认转换器,该转换器具有您自己的 T 和字符串之间的转换函数,反之亦然。

    要解决您的问题,请将 Culture 设置为 Invariant,这将始终使用点 (.) 作为小数分隔符,并将 Format 设置为 "F2",这会将您的浮点值截断为两位小数:

    <MudTextField @bind-Value="product.Price" Label="Price" Format="F2" 
                  Culture="@CultureInfo.InvariantCulture"/>
    

    【讨论】:

    • 感谢您的深入解释。像魅力一样工作!
    猜你喜欢
    • 2015-11-23
    • 2021-08-23
    • 2023-03-12
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多