首页 > 解决方案 > MudBlazor 文本字段中的格式绑定双重属性

问题描述

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

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

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

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

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

我该怎么做?

标签: formatblazortextfieldmudblazor

解决方案


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

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

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

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

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

推荐阅读