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>

最新文章

  1. jmeter jar包
  2. SILVERLIGHT 应急卫生模拟演练项目之GRID布局
  3. afnetworking报错pointer being freed was not allocated
  4. 数据结构作业——N个数中未出现的最小整数(想法题)
  5. Sring控制反转(Inversion of Control,Ioc)也被称为依赖注入(Dependency Injection,DI)原理用反射和代理实现
  6. Spring 4 bak
  7. 利用HTML5开发Android(4)---HTML5本地存储之Web Storage
  8. 实现 Castor 数据绑定--转
  9. 关于Qt的StyleSheet作用范围
  10. 渲染引擎 &amp; 页面渲染流程 &amp; 阻塞
  11. centos7更改网卡名称
  12. 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
  13. Linux虚拟机的三种网络连接方式
  14. 20170706xlVBA汇总历时对阵数据
  15. 【数据分析方法论】指标_DAU/MAU
  16. mysql中的handler_read_%
  17. ASP.NET应用技巧:非托管COM组件的使用
  18. browsersync即时刷新页面
  19. 面向 B 端的产品经理
  20. 【Linux笔记】CentOS 7 systemctl、firewalld

热门文章

  1. [转]加盐hash保存密码的正确方式
  2. [BZOJ 1070] [SCOI2007] 修车 【费用流】
  3. Mysql分页查询
  4. IAR FOR ARM 各版本,需要的大家可以收藏了
  5. MongoDB ‘conn’Mongo 对象远程代码执行漏洞
  6. 安装配置MongoDB
  7. 【转】如何在github上fork一个项目来贡献代码以及同步原作者的修改 -- 不错
  8. 【转】Android 菜单(OptionMenu)大全 建立你自己的菜单--不错
  9. 线性代数(高斯消元):JSOI2008 球形空间产生器sphere
  10. Android开发必知--自定义Toast提示