21 Stimmen

Festlegen eines Schaltflächeninhalts, der eine Mischung aus Text und einem Bindungspfad enthält

Wie geben Sie den Inhalt einer Schaltfläche an, die eine Mischung aus TEXT und einem Bindungspfad ist?

Zum Beispiel so:

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

0 Stimmen

Sprechen Sie über StringFormat ?

44voto

Fredrik Hedblad Punkte 81655

In den meisten Fällen können Sie StringFormat in den Bindungen verwenden, z.B. für eine TextBlock

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

Dies hat jedoch keine Auswirkungen auf eine ContentControl (die Button erbt von). Stattdessen können Sie ContentStringFormat

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

Auch für

  • ContentControl Sie verwenden ContentStringFormat
  • HeaderedContentControl Sie verwenden HeaderStringFormat
  • ItemsControl Sie verwenden ItemStringFormat

32voto

Pavlo Glazkov Punkte 20178

Etwa so:

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

OR

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

Grundsätzlich können Sie jeden beliebigen Inhalt in eine Schaltfläche einfügen, indem Sie den oben beschriebenen Ansatz verwenden.

2voto

DPH Punkte 280

In Anlehnung an die anderen Antworten ist diese etwas knapper gehalten:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X