在 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 }
}
MudTextfield 将双精度转换为字符串,并且在编辑字符串时它会转换回双精度,因此工作正常。但是我有两个问题:
- 在我的文化中,小数点写成逗号,因此文本字段显示逗号,但我想像 C# 中一样有一个小数点。
- 我希望文本字段将小数截断为两位,即使模型中的值更多
我该怎么做?
在 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"/>
我有一个双值模型,它以这种方式绑定到 MudTextfield:
<MudTextField @bind-Value="product.Price" Label="Price"/>
@code {
Product product = new Product { Name="Test-Abo", Price=199.12345 }
}
MudTextfield 将双精度转换为字符串,并且在编辑字符串时它会转换回双精度,因此工作正常。但是我有两个问题:
- 在我的文化中,小数点写成逗号,因此文本字段显示逗号,但我想像 C# 中一样有一个小数点。
- 我希望文本字段将小数截断为两位,即使模型中的值更多
我该怎么做?
在 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"/>