Указание содержимого кнопки, которое имеет сочетание текста и пути привязки - PullRequest
18 голосов
/ 01 марта 2011

Как указать содержимое кнопки, представляющее собой смесь текста и пути привязки?

Как это:

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

Ответы [ 3 ]

35 голосов
/ 01 марта 2011

В большинстве случаев вы можете использовать StringFormat в привязках, как для 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
26 голосов
/ 01 марта 2011

Примерно так:

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

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

1 голос
/ 01 февраля 2019

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

<Button Content="{Binding FirstName, StringFormat='Click here, {0}!'}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...