BindingBase.StringFormat 属性
获取或设置一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式。

StringFormat 可以是预定义的、撰写的或自定义的字符串格式。有关字符串格式的更多信息,请参见.NET Framework 中的格式化类型

如果设置 Converter 和 StringFormat 属性,则会先对数据值应用转换器,然后应用 StringFormat。

当将 Binding 上的 StringFormat 设置为撰写字符串格式时,只能指定一个参数。

如果使用 MultiBinding,则仅当 StringFormat 属性是在 MultiBinding 上设置的时才应用此属性。忽略在任何子 Binding对象上设置的 StringFormat 的值。撰写字符串格式中参数的数目不能超过 MultiBinding 中的子 Binding 对象数。

在使用 PriorityBinding 时,可以在 PriorityBinding 和/或子绑定对象上设置 StringFormat。如果 StringFormat 是在所应用的子绑定上设置的,则使用该值。如果 StringFormat 不是在所应用的子绑定上设置的,则应用 PriorityBinding 的StringFormat(如果已设置)。

更多:https://msdn.microsoft.com/zh-cn/library/system.windows.data.bindingbase.stringformat(v=vs.110).aspx

一、对于Text类型的绑定

后台绑定DataContext值

textBlock.DataContext = System.Diagnostics.Process.GetCurrentProcess();
button.DataContext = textBlock.DataContext;
label.DataContext = DateTime.Now; label3.DataContext = new { ID=,Time=DateTime.Now};

1.格式化DateTime

<!--测试成功-->
<TextBlock x:Name="label3" Text="{Binding Path=Time,StringFormat={}{0:yyyy-MM-dd}}"
Width="250" Height="30" Background="Linen" Margin="40,154,2,85">
</TextBlock>

2.MultiBinding绑定多个属性,并格式化

<TextBlock x:Name="textBlock" HorizontalAlignment="Left" Margin="40,86,0,0" TextWrapping="Wrap" VerticalAlignment="Top">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}----)">
<Binding Path="ProcessName" ></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<!--测试成功-->
<TextBlock x:Name="label3"
Width="250" Height="30" Background="Linen" Margin="40,165,2,74">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:yyyy-MM-dd},ID:{1}">
<Binding Path="Time" ></Binding>
<Binding Path="ID" ></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>

二、对于Content类型,格式化使用ContentStringFormat

1.绑定单个值,格式化DateTime

<!--对于Content类型,使用ContentStringFormat格式化-->
<Label x:Name="label" Content="{Binding}" ContentStringFormat="时间:{0:yyyy-MM-dd}"
Width="200" Height="30" Background="Red" Margin="40,206,52,33">
</Label>

2.绑定多个值,没有目前还没找到更好方法,暂且在Content内容中嵌入其他空间如TextBlock,实现绑定多个值

<Label  x:Name="label3"
Width="250" Height="30" Background="Linen" Margin="40,165,2,74">
<Label.Content >
<StackPanel>
<TextBlock >
<TextBlock.Text>
<MultiBinding StringFormat="时间:{0:yyyy-MM-dd},ID:{1}">
<Binding Path="Time" ></Binding>
<Binding Path="ID"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Label.Content>
</Label>

Wpf 数据绑定之BindingBase.StringFormat的更多相关文章

  1. WPF数据绑定Binding(二)

    WPF数据绑定Binding(二) 1.UI控件直接的数据绑定 UI对象间的绑定,也是最基本的形式,通常是将源对象Source的某个属性值绑定 (拷贝) 到目标对象Destination的某个属性上. ...

  2. 剖析WPF数据绑定机制

    引言 WPF框架采取的是MVVM模式,也就是数据驱动UI,UI控件(Controls)被严格地限制在表示层内,不会参与业务逻辑的处理,只是通过数据绑定(Data Binding)简单忠实地表达与之绑定 ...

  3. WPF 数据绑定Binding

    什么是数据绑定? Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及与数据交互. 通过数据绑定,您可以对两个不同对象 ...

  4. WPF——数据绑定(一)什么是数据绑定

    注意:本人初学WPF,文中可能有表达或者技术性问题,欢迎指正!谢谢! 一:什么是数据绑定? “Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简 ...

  5. WPF 10天修炼 第十天- WPF数据绑定

    WPF数据绑定 数据绑定到元素属性是将源对象指定为一个WPF元素,并且源属性是一个依赖属性,依赖属性内置了变更通知.当改变源对象依赖属性值之后,绑定目标可以立即得到更新,开发人员不需要手动编写响应事件 ...

  6. WPF中Binding使用StringFormat格式化字符串方法

    原文:WPF中Binding使用StringFormat格式化字符串方法 货币格式 <TextBlock Text="{Binding Price, StringFormat={}{0 ...

  7. 微软原文翻译:适用于.Net Core的WPF数据绑定概述

    原文链接,大部分是机器翻译,仅做了小部分修改.英.中文对照,看不懂的看英文. Data binding overview in WPF 2019/09/19 Data binding in Windo ...

  8. C#-WPF数据绑定基础(一)

    前言:WPF数据绑定技术有效的提高了程序的容错率,可以最大程度的保持程序的健壮性,从而降低程序在使用过程中崩掉的可能性. 接下来,我将分享一下我在写测量程序过程中所用到的数据绑定方面的知识 首先,我所 ...

  9. C#WPF数据绑定模板化操作四步走

    前言:WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法: 具体实例代码如下: 以下代码仅供参考,如有问题请在评论区留言,谢谢 1 第一步:声明一个类用来 ...

随机推荐

  1. 关于移动手机端富文本编辑器qeditor图片上传改造

    日前项目需要在移动端增加富文本编辑,上网找了下,大多数都是针对pc版的,不太兼容手机,当然由于手机屏幕小等原因也限制富文本编辑器的众多强大功能,所以要找的编辑器功能必须是精简的. 找了好久,发现qed ...

  2. NET笔试题集

    题目来源于传智播客和各大互联网,复习.重新整理贴出来. 1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 ...

  3. 转:[译]Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序

    原文来自于:http://www.cnblogs.com/aNd1coder/archive/2013/08/12/3252690.html Autoprefixer解析CSS文件并且添加浏览器前缀到 ...

  4. BZOJ 1059 矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个\(N \times N\)黑白方阵进行(如同国际象棋一般,只是颜色是随意的). ...

  5. 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

    本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作 ...

  6. nodejs template

    Server-side http://cnodejs.org/topic/514ba98af848e01f6b2956bf http://jade-lang.com/ http://cnodejs.o ...

  7. SOC

    http://marsvaadin.iteye.com/blog/1311438 http://blog.csdn.net/cxxsoft/article/details/12610641

  8. ASCII是指128个字符(不是256个)和ASCII Extended Characters(就是那些奇怪的外文字符)

    ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字元:其中33个字元无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸.扑克牌花式等8 ...

  9. SORT ORDER BY STOPKEY

    select * from ( select * from ( select a.*,rownum rn from page a where object_id >1000 and owner= ...

  10. HDOJ 2052 Picture

    Problem Description Give you the width and height of the rectangle,darw it. Input Input contains a n ...