WPF XAML之bing使用StringFormat(转)
释义
BindingBase.StringFormat 属性
获取或设置一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式。
命名空间: System.Windows.Data
程序集: PresentationFramework(在 PresentationFramework.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/2006/xaml/presentation,http://schemas.microsoft.com/netfx/2007/xaml/presentation
StringFormat和Converter
如果设置 Converter 和 StringFormat 属性,则会先对数据值应用转换器,然后应用 StringFormat。
使用
1,Binding中使用StringFormat, StringFormat 设置为撰写字符串格式时,只能指定一个参数。如绑定Name:
<ListView ItemsSource="{StaticResource MyData}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Description}"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Price, StringFormat=Now {0:c}!}"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Price, StringFormat={}{0:c}!}"/>
</GridView>
</ListView.View>
</ListView>
注意:
如果StringFormat中没有字符,“StringFormat=”后面需要先加入“{}”。
如果StringFormat中有字符,则不需要加入“{}”
2,绑定格式化时间
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy}}" />
或者
<TextBlock Text="{Binding Time,StringFormat='yyyy:MM:dd HH:mm:ss'}"/>
3,多重绑定
<ListBox ItemsSource="{StaticResource MyData}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} -- Now only {1:C}!">
<Binding Path="Description"/>
<Binding Path="Price"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
4,多重绑定中的特殊字符, 如 \t
<TextBlock.Text>
<MultiBinding StringFormat="Delete {0} {1}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
特殊字符如下:
- \a  BEL
- \b  BS - Backspace
- \f  FF - Formfeed
- \n LF, NL - Linefeed, New Line
- \r CR - Carriage return
- \t HT - Tab, Horizontal Tabelator
- \v  VT - Vertical Tabelator
5,在使用 PriorityBinding 时,可以在 PriorityBinding 和/或子绑定对象上设置 StringFormat。
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
DataContext="{Binding Source={StaticResource AsyncDS}}">
<TextBlock FontSize="18" FontWeight="Bold" Margin="10" HorizontalAlignment="Center">Priority Binding</TextBlock>
<TextBlock Background="Honeydew" Width="100" HorizontalAlignment="Center">
<TextBlock.Text>
<PriorityBinding FallbackValue="defaultvalue">
<Binding Path="SlowestDP" IsAsync="True"/>
<Binding Path="SlowerDP" IsAsync="True"/>
<Binding Path="FastDP" />
</PriorityBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
关于此条更多信息看:http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.data.prioritybinding.aspx
WPF XAML之bing使用StringFormat(转)的更多相关文章
- WPF XAML之bing使用StringFormat
WPF XAML之bing使用StringFormat // 转化为百分比 Text="{Binding Progress, StringFormat=\{0:P\}}" < ...
- [WPF,XAML] 跳动的心
原文:[WPF,XAML] 跳动的心 没什么艺术细胞,原谅,原谅! <Canvas Width="0" Height="0"> <Canvas ...
- WPF XAML
xmlns 在xml中专门用于声明名字控件, xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是 ...
- 使用MVVM DataTemplate在WPF XAML视图之间切换
原文 使用MVVM DataTemplate在WPF XAML视图之间切换 更新:这个技术的改进版本,一个不创建视图,可以在以下链接找到: http://www.technical-recipes.c ...
- 使用MVVM DataTriggers在WPF XAML视图之间切换/Window窗口自适应内容大小并居中
原文 使用MVVM DataTriggers在WPF XAML视图之间切换 相关文章: http://www.technical-recipes.com/2016/switching-between- ...
- 标记扩展和 WPF XAML
本主题介绍 XAML 的标记扩展概念,包括其语法规则.用途以及底层的类对象模型. 标记扩展是 XAML 语言以及 XAML 服务的 .NET 实现的常规功能. 本主题专门详细论述了用于 WPF X ...
- WPF在XAML中Binding使用StringFormat属性
1. 绑定Currency, 如果没有字符的话, =后面需要先加入{}. 不加的话会出问题. 1 <TextBlock Text="{Binding Amount, StringFor ...
- WPF - XAML如何引入名字空间
WPF 的XAML引入名字空间的概念,经常容易让人混淆.如何引入名字空间,并且在XAML中调用其中的类,下面给一个简单的介绍. 比如我们有一个Hepler类. namespace Wheat.PIMS ...
- WPF XAML 资源样式模板属性存放位置
WPF的XAML 资源申明 类似HTML. 整体来说分3种1.行类资源样式属性 1.1 行内属性 <Button Content="按钮" Foreground=" ...
随机推荐
- MVC 5.0 之奇葩错误-<类型“ASP._Page__ViewStart_cshtml”不从“System.Web.WebPages.StartPage”继承>
在实际项目中,我们通常添加MVC项目会先添加一个MVC Empty 的项目,然后需要什么在往里面添加. 但是Empty项目里面只有一个路由注册,而且没有_ViewStart.cshtml文件需要自己添 ...
- 打开局域网项目,显示“项目位置不受信任”的解决办法(VS2008)
弄了几天,网上搜了个遍,愣是解决不了,绝望的时候闭着眼睛胡搞,居然解决了,哈哈.... 开发环境:visual studio 2008 项目位置:局域网其他电脑内 出现问题: 1.弹出“”的对话框,如 ...
- PagerSlidingTabStrip的使用
布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...
- linux分区和系统文件和挂载
要以root用户进入 .查看磁盘情况 lsblk .进行分区 sudo cfdisk /dev/sda 在空闲资源的地方新建分区,然后一步步的走下来就行了,最后选择write,然后quit 重启 .创 ...
- spring的定时任务或者说自动任务
http://kevin19900306.iteye.com/blog/1397744 //这个是别人的博客 引入除spring.jar外的Quartz的jar包quartz-all-1.8. ...
- jquery的.detach()方法
.detach()就是从DOM中删除所有匹配的元素. 与.remove()方法不同的是, 这个方法不会把匹配的元素从jQuery对象中删除,所有绑定的事件.附加的数据等都会保留下来,因而可以在将来再使 ...
- google反向代理网址收集
前言 亲,还在为谷歌被墙而懊恼么?还在苦苦搜集FQ手段么?往下看吧? 最近在网站链接来源统计中,发现了很多反向代理了谷歌的链接,故搜集在这里,供需要的人使用,使用如下链接谷歌搜素不需要FQ哦?下面地址 ...
- C语言基础学习基本数据类型-int类型与int变量
int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ...
- C语言基础学习学习前的准备-2
注释让程序更明了 注释帮助我们阅读代码,对代码的运行不会造成任何影响.C语言主要有两种注释方法,一种是使用//进行单行注释,注释内容放在//之后: //需要注释的内容 当你的注释内容不止一行时,可以使 ...
- Codeforces 161D Distance in Tree
题目大意:给出一棵n个节点的树,统计树中长度为k的路径的条数(1<=n<=50000 , 1<=k<=500) 思路:树分治! #include<cstdio> # ...