MAUI怎么在XAML中使用绑定的字符串格式化 StringFormat

来源:这里教程网 时间:2026-02-21 17:33:56 作者:

在 MAUI 的 XAML 中,

StringFormat
可以配合绑定(
Binding
)使用,对绑定的值进行格式化显示,比如数字、日期、货币等。它只适用于
Binding
,不能用于普通属性赋值或静态文本。

基本语法:在 Binding 中设置 StringFormat

直接在

{Binding}
扩展中添加
StringFormat
参数即可:

其中

{0:C2}
是 .NET 标准格式字符串(C2 表示带两位小数的货币格式),
Price
是 ViewModel 中的
double
decimal
属性。

支持的常见格式类型

数字
{0:N2}
→ 千分位+两位小数,如
1,234.56
货币
{0:C}
{0:C2}
→ 本地化货币符号,如
¥123.45
(中文环境)
百分比
{0:P1}
→ 乘100后加%,如
12.3%
(对应 0.123)
日期时间
{0:yyyy-MM-dd HH:mm}
→ 自定义时间显示
自定义前缀/后缀
StringFormat='剩余{0}件'
→ 直接拼接文字

注意事项和常见问题

StringFormat 不会改变原始数据,只影响显示;它依赖于当前线程的

CultureInfo
,所以多语言 App 需注意本地化行为。

如果绑定值为
null
,默认显示空字符串(不会报错)
StringFormat
string
类型无效(本身已是字符串,无格式化意义)
不支持复合绑定(如
{Binding Name, StringFormat='{0} - {1}'}
这种写法不合法)
若需复杂逻辑,建议改用
IValueConverter
,StringFormat 仅适合简单格式场景

替代方案:IValueConverter(需要更灵活控制时)

当 StringFormat 不够用(比如要根据值动态变色、拼接多个属性、做条件判断),就该上转换器:

在 C# 中实现

IValueConverter
,可完全自定义返回字符串,比 StringFormat 更强大也更可控。

基本上就这些。StringFormat 是轻量级格式化利器,用对了省事又清晰。

相关推荐