2016-07-04 23 views
3

これは私の現在のコードです:私がやりたい何WPFで複数のフィールドを1つのTextBlockにバインドするにはどうすればよいですか?

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

式と1つのTextBlockを持っている「{ひずみ}/{MaximumStrain}」

+0

P.S.文字通りTextBlockは必要ありません。視覚的に似ている別のコントロールも同様に機能します。 –

+0

ちょっと考えました。それをリスト/コレクションにバインドしてコンバータを使用できますか? –

+0

勝者を選ぶのは難しいです。どちらの答えにも利点と限界があります。 –

答えて

5

さてあなたは、「ファイル名を指定して実行」コマンドを使用することができます

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

長所::各Runのフォント設定を変更することができ、これを試してみてください。 stringformatと

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

使用多:あなたがしなければならないすべては、実行して、このように同じ行にコマンドの場所ですあなたのテキストの間の空きスペースを追加しないようにするに

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

長所:間隔を直接制御します。

短所:

  • 複雑なフォントスタイル。
  • 場合によってはMode=OneWayが必要です。ユースケースに応じてエラーをスローしたり、バインドに失敗したりすることがあります。
関連する問題