在 MudBlazor 文本字段中格式化绑定双 属性

Format bound double property in MudBlazor textfield

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

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

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

Mu​​dTextfield 将双精度转换为字符串,并且在编辑字符串时它会转换回双精度,因此工作正常。但是我有两个问题:

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

我该怎么做?

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"/>