BindingBase.StringFormat 属性

定义

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

public:
 property System::String ^ StringFormat { System::String ^ get(); void set(System::String ^ value); };
public string StringFormat { get; set; }
member this.StringFormat : string with get, set
Public Property StringFormat As String

属性值

String

一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式。

示例

下面的示例使用StringFormat属性将一个Double表示货币的字符串转换为Price一个字符串。

<ListView ItemsSource="{StaticResource MyData}">
  <ListView.View>
    <GridView>
      <GridViewColumn DisplayMemberBinding="{Binding Path=Description}"/>
      <GridViewColumn DisplayMemberBinding="{Binding Path=Price, StringFormat=Now {0:c}!}"/>
    </GridView>
  </ListView.View>
</ListView>

以下示例使用StringFormat属性在 a MultiBinding 上生成一个字符串,其中包含Description``Price和包含每个ListBox项的字符串。

<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>

注解

StringFormat 可以是预定义、复合或自定义字符串格式。 有关字符串格式的详细信息,请参阅 格式设置类型

如果设置 ConverterStringFormat 属性,则首先将转换器应用于数据值,然后 StringFormat 应用该值。

将 on Binding 设置为StringFormat复合字符串格式时,只能指定一个参数。

使用 a MultiBinding时,该 StringFormat 属性仅在设置时 MultiBinding适用。 忽略在任何子Binding对象上设置的值StringFormat。 The number of parameters in a composite string format cannot exceed the number of child Binding objects in the MultiBinding.

使用 a PriorityBinding时,可以在子绑定对象上或同时设置 StringFormat on PriorityBinding、 如果在应用的子绑定上设置该值 StringFormat ,则使用该值。 StringFormat如果未在应用的子绑定上设置,StringFormatPriorityBinding则应用该绑定(如果已设置)。

如果格式字符串以 { 字符开头,则 XAML 分析器会将它与标记扩展混淆。 为了避免这种歧义,请将格式字符串前缀为空的大括号集。

适用于