2016-07-04 16 views
3

Dies ist mein aktueller Code:Wie binde ich mehrere Felder an einen TextBlock in WPF?

<StackPanel Grid.Column="4" Grid.Row="1"> 
    <TextBlock Text="{Binding Strain}" /> 
    <TextBlock Text="/" /> 
    <TextBlock Text="{Binding MaximumStrain}" /> 
</StackPanel> 

Was würde ich ist einen Textblock mit dem Ausdruck zu tun haben, wie „{Stamm}/{MaximumStrain}“

+0

P.S. Ich brauche keinen Textblock. Ein anderes Steuerelement, das visuell ähnlich ist, wird ebenfalls funktionieren. –

+0

Nur ein kurzer Gedanke. Kann es an eine Liste/Sammlung binden und Konverter benutzen? –

+0

Schwer, um einen Gewinner auszuwählen. Beide Antworten haben ihre Vorteile und Einschränkungen. –

Antwort

5

gut Sie den „Run“ Befehl verwenden könnten , versuchen Sie dies:

<StackPanel> 
     <TextBlock> 
      <Run Text="{Binding Strain}"></Run> 
      <Run Text="/"></Run> 
      <Run Text="{Binding MaximumStrain}"></Run> 
     </TextBlock> 
    </StackPanel> 

pro: Kann für jeden Run Schrifteinstellungen ändern.

zu vermeiden, um einen leeren Raum zwischen Ihrem Text addiert alles, was Sie tun müssen, um Platz ist der Run wie dies in den gleichen Zeilenbefehlen:

<Run Text="{Binding Strain}"></Run><Run Text="/"></Run><Run Text="{Binding MaximumStrain}"></Run> 
3

Verwendung mehrbindigen mit String.

<TextBlock Grid.Column="4" Grid.Row="1"> 
    <TextBlock.Text> 
     <MultiBinding StringFormat="{}{0}/{1}"> 
      <Binding Path="Strain" /> 
      <Binding Path="MaximumStrain" /> 
     </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

Vorteile: Direkte Kontrolle über Abstand.

Nachteile:

  • Keine komplexe Schrift Styling.
  • Benötigt Mode=OneWay in einigen Fällen. Je nach Anwendungsfall wird möglicherweise ein Fehler ausgegeben oder die Verbindung wird nicht automatisch hergestellt.
Verwandte Themen