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}&#x09;{1}">
        <Binding Path="FirstName" />
        <Binding Path="LastName" />
    </MultiBinding>
 </TextBlock.Text>

特殊字符如下:
这里写图片描述

5,在使用 PriorityBinding 时,可以在 PriorityBinding 和/或子绑定对象上设置 StringFormat。

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
  DataContext="{Binding Source={StaticResource AsyncDS}}">
        <Te
        xtBlock 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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值