wpf binding中的 stringformat属性

csharp 复制代码
<StackPanel>
    <TextBlock Text="{Binding Info,
    StringFormat={}{0:C}}"/>
    <TextBlock Text="{Binding Info,
    StringFormat=Number: {0}}"/>
    <TextBlock Text="{Binding Info,
    StringFormat=Seconds: {0} (s)}"/>
    <TextBlock Text="{Binding Info,
    StringFormat={}{0:F2} km}"/>
    <TextBlock Text="{Binding Number,
    StringFormat={}{0:N2} km}"/>
    <TextBlock Text="{Binding Info,
    StringFormat={}{0:G4} km}"/>
    <TextBlock Text="{Binding Info,
    StringFormat={}{0:E4} km}"/>
    <TextBlock Text="{Binding Info,
    StringFormat={}{0:P3} Percentage}"/>
</StackPanel>

为了使用 {0:x} 类似的格式化模式,必须保证有前缀或者 {} 表示空前缀,

例如第一个 {}{0:C} 表示了一个空前缀按照货币显示格式化数字,默认是2位小数,{}{0:Cn},n 表示保留的小数位数

第二个 Number: {0} 使用 Number: 作为前缀 {0} 则代表格式化的属性。

下面便是一些 ToString() 中常用的格式化标识,包括 F2 保留2位小数,N2 保留2位小数并使用逗号分隔千分位,G4 保留4个有效数字,E4 使用科学计数法并保留4位小数位,P3 使用百分数表示法并保留3位小数。

》》》占位符

csharp 复制代码
<TextBox Text="{Binding Price, StringFormat={}{0:0000.00}}" /> // 0123.46
<TextBox Text="{Binding Price, StringFormat={}{0:####.##}}" /> // 123.46

》》》日期、时间

csharp 复制代码
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:d}}" /> // 5/4/2015
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:D}}" /> // Monday, May 04, 2015
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:f}}" /> // Monday, May 04, 2015 5:46 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:F}}" /> // Monday, May 04, 2015 5:46:56 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:g}}" /> // 5/4/2015 5:46 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:G}}" /> // 5/4/2015 5:46:56 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:m}}" /> // May 04
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:M}}" /> // May 04
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:t}}" /> // 5:46 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:T}}" /> // 5:46:56 PM
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:yyyy年MM月dd日}}" /> // 2015年05月04日
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd}}" /> // 2015-05-04
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd HH:mm}}" /> // 2015-05-04 17:46
<TextBox Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" /> // 2015-05-04 17:46:56
<TextBlock Text="{Binding Time,StringFormat='yyyy:MM:dd HH:mm:ss'}"/> // 2015:05:04 17:46:56

》》多重绑定

csharp 复制代码
<TextBox.Text>
	<MultiBinding StringFormat="姓名:{0}{1}">
	<Binding Path="FristName" />
	<Binding Path="LastName" />
	</MultiBinding>
</TextBox.Text>
// 姓名:AAbb
相关推荐
码界奇点21 小时前
基于eBPF技术的高性能网络防火墙系统设计与实现
开发语言·网络·毕业设计·php·wpf·go语言·源代码管理
cjp5601 天前
022.WPF 封装TextBox控件限制只输入数字自定义属性
wpf
cjp5601 天前
021.WPF 以MVVM模式控制combox控件显示/隐藏
wpf
小北方城市网2 天前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
流水线上的指令侠2 天前
补充说明——针对《C#:从 0 到 1 创建基于 NUnit + FlaUI 的 WPF UI 自动化测试项目》
功能测试·ui·c#·自动化·wpf
流水线上的指令侠2 天前
C# 实战:从 0 到 1 搭建基于 NUnit + FlaUI 的 WPF UI 自动化测试项目
功能测试·ui·c#·自动化·wpf·visual studio
贾修行2 天前
.NET 全栈开发学习路线:从入门到分布式
c#·.net·wpf·asp.net core·web api·winforms·services
晓13132 天前
第四章:Redis实战应用及常见问题(下篇)
java·数据库·缓存·wpf
掘根3 天前
【jsonRpc项目】客户端的Requestor模块,RpcCaller模块
wpf
FuckPatience3 天前
WPF ListBoxItem绑定自己在ListBox中的顺序
wpf