Указание содержимого кнопки, содержащего сочетание текста и пути привязки

Как вы указываете содержание кнопки, которая представляет собой сочетание некоторого ТЕКСТА и пути привязки?

Вот так:

<Button Content= "TEXT" + "{Binding Path=ButtonContent}"

Ответ 1

Что-то вроде этого:

<Button>
   <Button.Content>
      <TextBlock Text="{Binding SomeBindingPath, StringFormat='Some text {0}'}"/>
   </Button.Content>
</Button>

ИЛИ

<Button>
   <Button.Content>
      <StackPanel Orientation="Horizontal">
         <TextBlock Text="Some Text"/>
         <TextBlock Text="{Binding SomeBindingPath}"/>
      </StackPanel>
   </Button.Content>
</Button>

В принципе, вы можете поместить любой контент внутри кнопки, используя описанный выше подход.

Ответ 2

В большинстве случаев вы можете использовать StringFormat в Bindings, например, для TextBlock

<TextBlock Text="{Binding ElementName=textBox,
                          Path=Text,
                          StringFormat='{}{0} - Added Text'}"/>

Однако это не влияет на ContentControl (который наследует Button). Вместо этого вы можете использовать ContentStringFormat

<Button Content="{Binding ElementName=textBox,
                          Path=Text}"
        ContentStringFormat="{}{0} - Added Text"/>

Кроме того, для

  • ContentControl вы используете ContentStringFormat
  • HeaderedContentControl вы используете HeaderStringFormat
  • ItemsControl вы используете ItemStringFormat

Ответ 3

Основываясь на других ответах, это немного более кратко:

<Button Content="{Binding FirstName, StringFormat='Click here, {0}!'}" />